有沒有辦法來驗證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
非常感謝... –