我正在做一些 HitTest ,遇到了一个令人困惑的情况。
我有两个按钮“favoriteButton”和“shareButton”。即使按钮不重叠,以下代码也会导致“a”和“b”为真:
CGPoint dunno = CGPointMake(11, 7);
BOOL a = [self.favoriteButton pointInside:dunno withEvent:nil];
BOOL b = [self.shareButton pointInside:dunno withEvent:nil];
为了证明这一点,这里是调用此代码时两个按钮的描述输出。
Printing description of _favoriteButton:
<UIButton: 0x5da8c90; frame = (10 6; 37 35); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x5da8d40>>
Printing description of _shareButton:
<UIButton: 0x5da7150; frame = (46 6; 30 35); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x5da59b0>>
这是怎么回事?我是否误解了输出应该是什么?
最佳答案
好吧,根据文档@Nippysaurus
A point that is in the receiver’s local coordinate system (bounds).
这意味着 CGPoint dunno = CGPointMake(11, 7);
点在 View 内部,因为 View 的边界与同一 View 的框架不同。
关于iphone - "pointInside:"是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7159538/