更改手势识别器位置?
Posted
技术标签:
【中文标题】更改手势识别器位置?【英文标题】:Change Gesture Recogniser Position? 【发布时间】:2011-10-13 21:12:56 【问题描述】:我有一个手势识别器来检测 UIImageView 上的点击,但是当 iPad 的方向改变时我强制改变图像的位置,但这会导致手势识别器重新定位不正确。我该如何解决这个问题?
编辑:
strapTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(strapTap:)];
[(UITapGestureRecognizer *)strapTap setNumberOfTapsRequired:1];
strapTap.delegate = self;
[leatherButtonedStrap addGestureRecognizer:strapTap];
以上是我设置手势的方式,将其添加到我的 UIImageView。但是,可能会引起轰动的是,我将此视图添加到我的主视图中,将其删除,然后在用户按下某个按钮时重新添加它。除非您看到整个课程,否则您很难理解发生了什么,但请告诉我这是否足以继续下去。
【问题讨论】:
显示您如何将手势识别器连接到图像视图。将手势识别器添加到视图后,框架是否发生变化都无关紧要,视图和手势识别器是否已绑定。 已编辑 OP。如果您需要更多信息,请告诉我。 图像视图是类的属性吗?当它从视图层次结构中删除时,您是否也释放它?gestureRecognizer
重新添加时是否为零?手势识别器在哪里添加到图像视图中?
我去看看,但在新版本的 Xcode 版本中,由于 ARC(自动引用计数)而被弃用。
您是否使用 [strapTap locationInView:leatherButtonedStrap] 来获取水龙头的位置?这将为您提供敲击在 LeatherButtonedStrap 视图坐标系中的位置。
【参考方案1】:
确保在调用 locationInView: 时在 strapTap: 中发送 LeatherButtonedStrap 作为参数:
CGPoint location = [recognizer locationInView:leatherButtonedStrap];
所以这个位置是相对于 LeatherButtonedStrap 的坐标系而不是它的 superview 的。
【讨论】:
以上是关于更改手势识别器位置?的主要内容,如果未能解决你的问题,请参考以下文章