有没有办法来验证CGPoint
是否在特定的CGRect
内。 例如:我拖着一个UIImageView
,我想验证它的中心点CGPoint
是否在另一个UIImageView
我该怎么办?IOS:验证点是否在矩形内
115
A
回答
239
请参阅文档中的CGRectContainsPoint()
。
bool CGRectContainsPoint(CGRect rect, CGPoint point);
参数
rect
检查的矩形。point
要检查的一点。 返回值 如果矩形不为空或空且点位于矩形内,则为true;否则,是错误的。
如果一个点的坐标位于矩形的内部或最小的X或最小的Y边上,则该点被认为是在矩形内。
10
UIView的pointInside:withEvent:可能是一个很好的解决方案。 将返回一个布尔值,指示给定的CGPoint是否在您正在使用的UIView实例中。 例子:
UIView *aView = [UIView alloc]initWithFrame:CGRectMake(0,0,100,100);
CGPoint aPoint = CGPointMake(5,5);
BOOL isPointInsideView = [aView pointInside:aPoint withEvent:nil];
3
它是如此简单,你可以用下面的方法做这样的工作: -
-(BOOL)isPoint:(CGPoint)point insideOfRect:(CGRect)rect
{
if (CGRectContainsPoint(rect,point))
return YES;// inside
else
return NO;// outside
}
在你的情况,你可以通过imagView.center为点另一个imagView.frame作为rect in about方法。
您也可以在波纹管UITouch使用此方法方法:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
31
在斯威夫特将是这样的:
let point = CGPointMake(20,20)
let someFrame = CGRectMake(10,10,100,100)
let isPointInFrame = CGRectContainsPoint(someFrame, point)
斯威夫特3版本:
let point = CGPointMake(20,20)
let someFrame = CGRectMake(10,10,100,100)
let isPointInFrame = someFrame.contains(point)
Link to documentation。请记住检查遏制,如果两者是相同的坐标系中,如果没有,那么转换需要(some example)
+0
非常感谢 –
7
在迅速的,你可以做这样的:
let isPointInFrame = frame.contains(point)
“帧”是的CGRect和“点”是一个CGPoint
5
在Objective C中,你可以使用CGRectContainsPoint(yourview.frame,接触点)
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
UITouch* touch = [touches anyObject];
CGPoint touchpoint = [touch locationInView:self.view];
if(CGRectContainsPoint(yourview.frame, touchpoint)) {
}else{
}}
快速3 yourview.frame。包含(接触点)
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch:UITouch = touches.first!
let touchpoint:CGPoint = touch.location(in: self.view)
if wheel.frame.contains(touchpoint) {
}else{
}
}
相关问题
- 1. 测试点是否在矩形内
- 2. 点是内圆角矩形?
- 3. 检查是否在矩形的点
- 4. XNA - 检查Vector2是否在矩形内
- 5. 矩形内的点
- 6. 检查一组点是否在矩形数组内?
- 7. 检查点是否在矩形的给定距离内?
- 8. 如何找出给定的点是否在矩形内
- 9. WPF:展开验证矩形
- 10. 如何确定一系列点(或多边形)是否在矩形区域内?
- 11. 测试一个点是否位于一个超矩形内
- 12. 如何确定点是否位于矩形内?
- 13. 点在矩形
- 14. 确定点是否在多边形内?
- 15. 确定点是否在多边形内
- 16. 如何验证点是否位于由地理坐标形成的扇区内
- 17. 如何检查一条线的任何点(或部分)是否在矩形内或触及矩形
- 18. 浮点数验证形式
- 19. 在矩形内绘制等距矩形
- 20. 如何检查四个点是否形成矩形
- 21. 在AS3中,如何检查鼠标是否在矩形内?
- 22. 检查一个点是否包含在一个矩形内时出错
- 23. 验证$ _REQUEST内容是否为int
- 24. 是否有内置方法将矩形转换为矩形几何
- 25. 验证是否存在
- 26. 当旋转外部矩形时,在矩形内移动矩形
- 27. 在iOS中绘制矩形
- 28. 矩形的UISearchBar在iOS 7
- 29. 检查圆形是否包含矩形
- 30. Javascript函数确定一个点是否在矩形之间
缺少的环节;)https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html – ezekielDFM
救我的时间。谢谢 – HamasN
非常感谢... –