【问题标题】:How to define a tappable area defined by coordinates如何定义由坐标定义的可点击区域
【发布时间】:2013-03-25 16:12:04
【问题描述】:

我正在编写一个从坐标列表中绘制形状的小型 iPad 应用程序。我想点击形状内的任何地方并进行一些操作(即 NSLog 证明它有效)。

有谁知道如何创建一个由坐标列表定义的可点击区域?

形状正在绘制在 MKMapView 之上。

【问题讨论】:

    标签: objective-c touch coordinates area tap


    【解决方案1】:

    我的做法是:

    让标记形状的点位于 UIView 的子类中。为该类覆盖 pointInside:withEvent:。然后看看How can I determine whether a 2D Point is within a Polygon?,用你的新知识来实现​​pointInside:withEvent:

    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
    {
        //Left as homework
    }
    

    您可以使用常规的点击手势识别器:)

    【讨论】:

    • 请注意,“留作作业”部分不必很复杂。如果您使用 CGPathRef 定义坐标,则可以使用 CGPathContainsPoint() 它会为您完成。
    【解决方案2】:

    只有UIView 的实例是可点击的,它们的区域由它们的矩形属性frame 定义。原则上,可以(对于非常简单和特定的形状)通过多个UIViews 来近似由坐标定义的区域,但这可能不是您想要的。

    【讨论】:

    • 形状正在绘制在 MKMapView 之上。这有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2011-02-15
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多