![]() |
焦虑的水煮肉 · 刘雪华刘德凯电视剧-西瓜视频搜索· 9 月前 · |
![]() |
深沉的伤疤 · 【强推】《替阿姐出嫁之后》古耽车香/双洁/双 ...· 1 年前 · |
![]() |
豪情万千的爆米花 · 国漫改编全新启程 《大主宰》少年热血一路进阶· 1 年前 · |
![]() |
逃跑的槟榔 · C++如何删除文本文件中的某一行 ...· 1 年前 · |
![]() |
纯真的黑框眼镜 · Ser niños con cáncer ...· 1 年前 · |
我已经找到了locationInView的问题:在UITapGestureRecognizer上总是给我(0,-67)的肖像和风景的CGPoint (0,268)。(如果我不把它塑造成UITapGestureRecognizer,我偶尔会看到(0,180)的风景。
此问题在iOS 5模拟器中不存在。这种情况经常发生在iOS 6模拟器中,几乎90%的时间发生在iOS 6设备中。
我现在猜到,手势识别器在调用action方法时不再有效。但这没有意义,因为这意味着我们总是需要在委托方法中调用locationInView:.
详细信息:
我想要做的事情: 识别MKMapView上的一个Tap手势,隐藏它来协调并显示它作为一个注释
我所做的: 在动作方法中的手势识别器。
CLLocationCoordinate2D coordinate = [self.mapView convertPoint:[(UITapGestureRecognizer *)sender locationInView:self.mapView] toCoordinateFromView:self.mapView];
我确实进行了反省,以确保发送者确实是一个UITapGestureRecognizer。
我也尝试过将
YES
返回给
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
,但这并没有帮助。
应该发生什么: 坐标应该对应于地图上点击的点。
发生了什么: 坐标总是稍微偏左。
更新:
所以..。我已经用
<UIGestureRecognizerDelegate>
中的所有委托方法进行了测试。在上面的action方法和
– gestureRecognizer:shouldReceiveTouch:
中,手势识别器给出了locationInView:的无效位置(0,-64)。(如前所述,它是0,-67,但在几分钟前我将Xcode更新到最新版本lol之后,变成了0,-64 )。然而,在
– gestureRecognizerShouldBegin:
和
– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
中,它给出了正确的CGPoint。
我的问题是。这就是你想要的行为吗?还是我搞砸了什么?否则,就意味着我需要在一个委托方法中启动我的操作,因为我确实需要手势识别器的正确位置。但是这个选项听起来不太正确..。
对不起,伙计们,我已经找到原因了。
我只是把
locationInView:
放在
performBlock:
of a
NSManagedObjectContext
中,这很明显,因为UIGestureRecognizer是UI的东西,iOS中的规则#1是"UI内容只属于主线程“。这立即解释了
locationInView:
的不一致行为,以及为什么它更有可能在早期阶段成功。
教训,再次:阅读“手势识别器”为
UIGestureRecognizer
。
"UI"
。
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
![]() |
焦虑的水煮肉 · 刘雪华刘德凯电视剧-西瓜视频搜索 9 月前 |
![]() |
豪情万千的爆米花 · 国漫改编全新启程 《大主宰》少年热血一路进阶 1 年前 |
![]() |
逃跑的槟榔 · C++如何删除文本文件中的某一行 |21xrx.com 1 年前 |