识别圆形手势以放置注释,如何检测圆形?

Posted

技术标签:

【中文标题】识别圆形手势以放置注释,如何检测圆形?【英文标题】:Recognising a circle gesture to drop an annotation, how to detect circle? 【发布时间】:2011-04-30 15:51:19 【问题描述】:

我发现了一些代码可以检测视图中任意位置的圆圈手势: http://iphonedevelopment.blogspot.com/2009/04/detecting-circle-gesture.html

效果很好。

现在我想将它合并到一个地图视图中,以便用户可以绘制一个圆圈,并且地图图钉会落在所绘制圆圈的中间。如果我使用上面的代码对 UIView 进行子类化并在其上粘贴地图,则上面的代码不起作用。 (除非我隐藏地图)。如果我将代码放在子类的 MKMapView 中,它也不起作用。

有没有办法将圆圈识别器与地图结合起来?

【问题讨论】:

重复***.com/questions/5842080/… 不是骗子。我可以检测到一个圆圈,但不能在地图上检测到 这是一个优秀的用户界面创意。恭喜你。 其实并不完美。地图必须是可滚动的,因此在触发手势之前,地图会绕一圈拖动。而且,有时人们可能会以圆周运动拖动地图而没有放下图钉的意思。事实上,当我测试它时,这种情况经常发生。 你说得对,它会与滚动交互,但很简单任何手势都是如此。作为一个通用的 UI 想法,这是一个好主意!谢谢!! 【参考方案1】:

我使用的一个解决方案是不子类化 MKMapView,而是使用组合。意思是,创建你的 UIViewController,添加你的 MKMapView,然后在上面添加另一个透明的。将您的手势添加到该视图。确保在该视图中没有点击其他触摸,以便 MKMapView 继续响应。

【讨论】:

【参考方案2】:

我的猜测是继承 MKMapView 并在那里实现你的圆形手势识别器。 然后在您的子类视图上绘制圆圈。

【讨论】:

【参考方案3】:

回答我自己的问题:

这个页面很有用:http://justinimhoff.com/swipe-gesture-with-uiwebview/

对于上面的圆圈示例,我将 CircleView 设为 UIGestureRecognizer 而不是视图。在该文件中使用“self.view”更改了“self”的实例。然后我将它与滑动手势示例相结合,确保将我的圆形手势识别器的委托设置为 self。 如果有人需要了解更多详情,请告诉我。

【讨论】:

以上是关于识别圆形手势以放置注释,如何检测圆形?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Matlab检测红色圆圈中不规则放置的瓶子,同时排除那些规则圆形瓶子?

如何创建可平滑调整大小的圆形 UIView?

Python opencv进行圆形识别(圆检测)

opencv,在一个有缺陷的圆形区域内如何放置更多的小圆形

将平移手势识别器限制为特定圆圈

js实现圆形的碰撞检测