bar*_*nes 3 iphone objective-c ios

我有一个圆形的UIView.我必须只检测紫色圆圈内的触摸.必须忽略圆圈外的所有触摸,例如黑色方形和白色背景.
设置半径和检测触摸将没有任何用处,因为当多个视图在彼此之上具有不同的控制器时,将难以管理.
有什么办法,我可以这样做.请你能给我一些建议.
创建一个自定义子类UIView,说明CircularView并覆盖该pointInside:withEvent:方法以忽略位于圆外的点.该子类的一个对象将是自包含的,您可以按照您想要的任何方式进行排列.
要确定圆形区域是否包含点,可以使用核心图形功能CGPathContainsPoint或containsPoint:方法UIBezierPath.这将需要你记住的CGPathRef还是UIBezierPath表示Circle对象.在这个例子中,我假设你已经创建了一个循环路径UIBezierPath,它被存储为CircularView类的属性.
@interface CircularView : UIView
// initialize this when appropriate
@propery (nonatomic, strong) UIBezierPath *circularPath;
@end
@implementation CircularView
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
return [circularPath containsPoint:point];
}
@end
Run Code Online (Sandbox Code Playgroud)
就是这样.
| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |