iOS 在给定空间点的情况下找到盒子

标签 ios touch

我有一个非常有趣的问题,但我找不到解决方案。 给定空间中的一组牛矩形或盒子,并给定触摸坐标,我会找到触摸点所属的盒子。 起初,我使用点到矩形中心的欧氏距离。

但是,显然,这并不总是有效。假设下图有 2 个盒子,分别以 a 和 c 为中心:

----------
|        |
|        |
|   a    |
|        |
|        |
|   x    |
----------
|        |
|   c    |
|        |
----------

触摸点是“x”,它属于盒子“a”。在我的算法中,x 比 a 更接近 c,这是错误的。 有什么建议么?

最佳答案

CGRectContainsPoint 方法为您完成所有工作。例如,假设您使用了点击手势。

-(void)handleTap:(UITapGestureRecognizer *)gesture {

    CGPoint point = [gesture locationInView:self.view];

    if (CGRectContainsPoint(box.frame, point)) {
       NSLog@("Point is in Box");
    }       
}

关于iOS 在给定空间点的情况下找到盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885119/

相关文章:

ios - 在 MapKit Swift3 上旋转图钉方向

ios - 音频不在 iPhone 的 uiwebview 中播放

ios - 检测 UIView 上的触摸

ios - UIScrollView 放大弹跳

android - 如何使用二维码深度链接打开智能手机默认的网络浏览器应用程序

objective-c - Fading UIView 允许 subview 可见

java - Android - "Faking"触摸事件不起作用

android - 播放动画时禁用屏幕上的触摸事件

javascript - HTML5/Javascript - 是否可以在浏览器中获取 Macbook 触控板上触摸事件的绝对坐标?

java - 如何缩小/减少android中按钮的点击区域?