iOS开发-判断一个点是否在某个区域
2014-09-01 17:06
633 查看
iOS有时候需要判断是否touch到某个图的区域中。也就是touch到的这个点是否在某个图的区域范围内。
解决问题的办法很多, 这里简单介绍一种。
我们可以通过CGPath创建一个区域,区域是由路径做两点间线段并闭合成的区域,然后就可以用CGPath相关函数CGPathContainsPoint判断点是否在区域里了。
比如这里创建了一个简单的矩形。它的frame为(4, 4, 10, 10)。 四个顶点的坐标分别为(4, 4), (4, 14), (14, 14), (14, 4)
显然易得, (1, 1)不在这个区域内 (5, 5)在这个区域内。
我们可以验证一下, 代码如下:
解决问题的办法很多, 这里简单介绍一种。
我们可以通过CGPath创建一个区域,区域是由路径做两点间线段并闭合成的区域,然后就可以用CGPath相关函数CGPathContainsPoint判断点是否在区域里了。
比如这里创建了一个简单的矩形。它的frame为(4, 4, 10, 10)。 四个顶点的坐标分别为(4, 4), (4, 14), (14, 14), (14, 4)
显然易得, (1, 1)不在这个区域内 (5, 5)在这个区域内。
我们可以验证一下, 代码如下:
- (void)viewDidLoad { [super viewDidLoad]; CGMutablePathRef pathRef=CGPathCreateMutable(); CGPathMoveToPoint(pathRef, NULL, 4, 4); CGPathAddLineToPoint(pathRef, NULL, 4, 14); CGPathAddLineToPoint(pathRef, NULL, 14, 14); CGPathAddLineToPoint(pathRef, NULL, 14, 4); CGPathAddLineToPoint(pathRef, NULL, 4, 4); CGPathCloseSubpath(pathRef); CGPoint point=CGPointMake(5, 5); CGPoint outPoint=CGPointMake(1, 1); if (CGPathContainsPoint(pathRef, NULL, point, NO)) { NSLog(@"point in path!"); } if (!CGPathContainsPoint(pathRef, NULL, outPoint, NO)) { NSLog(@"outPoint out path!"); } }
相关文章推荐
- iOS开发-判断一个点是否在某个区域
- 百度地图开发总结----3.判断一个点是否在一片区域内
- 百度地图开发总结----3.判断一个点是否在一片区域内
- iOS判断一个点是否在一个区域内
- 判断一个坐标点是否在一个无规则的多边形内 (iOS定位服务与地图应用开发:高德地图开发)
- iOS中判断一个文件夹是否存在
- Java 判断一个点是否在多边形区域内
- Java 判断一个点是否在多边形区域内【转】
- ArcGIS for IOS 判断点是否在地图绘制的区域内(个人)
- 判断一个点是否在指定区域内
- IOS 开发中判断字符串是否为空字符的方法
- 判断鼠标是否落在界面中某一个区域内 .
- iOS开发复用代码小片段-判断邮箱是否合法的代码
- 如何判断一个指定的经纬度点是否落在一个多边形区域内?
- ios开发基础-判断NSString是否为纯数字
- 【ios开发】如何判断当前网络连接状态(网络是否正常)
- 如何判断一个点是否在一个闭合区域内(无凹进的顶点)
- ios中判断一个数是否是整数,是整数那么只显示整数部分。否则显示小数点后面一位
- IOS开发中判断文件是否存在,不存在则拷贝
- IOS 开发中判断字符串是否为空字符的方法