- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经追踪到问题出在 UITapGestureRecognizer 上的 locationInView: 总是给我纵向的 (0,-67) 和横向的 (0,268) CGPoint。 (如果我不将其转换为 UITapGestureRecognizer,我偶尔会在横向上得到 (0,180)。
这个问题在iOS 5 模拟器中不存在。它经常发生在 iOS 6 模拟器中,几乎 90% 的时间发生在 iOS 6 设备中。
我现在的猜测是手势识别器在调用 Action 方法时不再有效..但这没有意义,因为这意味着我们总是需要在委托(delegate)方法中调用 locationInView:..
详细信息:
我正在尝试做的事情:识别 MKMapView 上的 Tap 手势,隐藏该点以进行坐标并将其显示为注释
我做了什么:在手势识别器的 Action 方法中..
CLLocationCoordinate2D coordinate = [self.mapView convertPoint:[(UITapGestureRecognizer *)sender locationInView:self.mapView] toCoordinateFromView:self.mapView];
我确实做了内省(introspection)以确保发送者确实是一个 UITapGestureRecognizer..
我也试过返回YES
对于 (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
但这没有帮助。
应该发生什么:该坐标应与在 map 上点击的点相对应。
发生了什么:坐标总是稍微偏左。
更新:
所以..我已经用 <UIGestureRecognizerDelegate>
中的所有委托(delegate)方法进行了测试.在上面的操作方法和 – gestureRecognizer:shouldReceiveTouch:
中手势识别器为 locationInView: 提供了无效位置 (0,-64)。 (如上所述是 0,-67,但在我几分钟前将 Xcode 更新到最新版本后变为 0,-64,哈哈) 但是,在 – gestureRecognizerShouldBegin:
和 – gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
它给出了正确的 CGPoint。
我的问题是..这是预期的行为吗?还是我搞砸了什么?否则这意味着我需要在其中一种委托(delegate)方法中触发我的操作,因为我确实需要手势识别器的正确位置。不过这个选项听起来不太正确..
最佳答案
抱歉打扰了大家,我已经找到原因了。
我只是将 locationInView:
留在 NSManagedObjectContext
的 performBlock:
中,这很清楚,因为 UIGestureRecognizer 是一个 UI 事物,并且iOS 中的第一条规则是“UI 内容只属于主线程”。这立即解释了 locationInView:
的不一致行为,以及为什么它更有可能在早期阶段成功..
再次吸取教训:将“手势识别器”读作 UIGestureRecognizer
。 “用户界面”。
关于ios - UITapGestureRecognizer 为 locationInView : 提供无效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588067/
我正在使用UIRotationGestureRecognizer,并且在target方法中有以下代码: if (gestureRecognizer.state == UIGestureRecogniz
uitouch 的 locationInView 返回的坐标忽略了设备方向 - 我有一个可以正确旋转的 uiview,但是 locationInview 总是像纵向一样返回... View 覆盖了 l
我正在尝试使用 locationInView 来获取触摸的位置。当我将 locationInView 打印到控制台时,会输出正确的值。但是,当我尝试将其分配给局部变量时,该变量永远不会获取该值,因此我
请帮帮我。我有下一个问题: 我想在我的 UIViewController 子类中处理 touchesMoved: 事件(我有一个带有 View Controller 的 View ),但是当我调用 [
我试图做到这一点,以便在我触摸场景中的节点时我的游戏能够识别,除非我使用下面的代码,我认为这完全符合我的要求,我的应用程序无法正确识别节点的位置. 我在屏幕的其余部分周围单击,打印出我正在触摸的节点的
我已经追踪到问题出在 UITapGestureRecognizer 上的 locationInView: 总是给我纵向的 (0,-67) 和横向的 (0,268) CGPoint。 (如果我不将其转换
我正在迈出 Swift 的第一步 为 UIPanGestureRecognizer 沿 X 坐标移动 UIView 的最佳方法是什么? 通常程序员使用 translationInView 进行平移手势
我有一个 UIPanGestureRecognizer,我可以使用 locationInView 方法,但是当我输入 traslationInView 时,我无法使用它并且系统说:UIGestureR
我是初学者,对他们感到困惑。在控制台中,它们的位置具有不同的值。那么,他们自己的意义是什么? 最佳答案 locationInView 将根据处于纵向模式的正常笛卡尔坐标系为您提供用户触摸的当前位置。
iPhone 开发新手。谁能告诉我为什么 -(IBAction) handleTapGesture:(UIGestureRecognizer *) sender { CGPoint *tapP
我的应用程序运行良好,今天我开始收到这些随机错误 “UITouch”没有可见的@interface 声明选择器“locationInView” 我不明白,因为它在今天之前工作得很好,今天才开始这样做,
我知道 iPhone 的分辨率为 480 x 320,iPad 的分辨率为 1024 x 768,但我不知道如何以编程方式确定。如果能得到任何帮助,我将不胜感激。 最佳答案 UITouch*yourT
是否存在 UITouch 的 locationInView: 不知道视网膜显示器存在(或不存在)的原因?为什么视网膜显示的重新缩放留给开发人员作为任务。我觉得很奇怪。 谢谢, 道格 最佳答案 这是设计
我试图在用户单击特定的 SCNNode 后检索鼠标位置。我最终想要执行 HitTest 来确定单击了哪个 SCNNode。我有以下代码,但是一旦运行该项目,我就会收到一个断言错误,指出:“无法获取 l
我是一名优秀的程序员,十分优秀!