我们,
今天我已将iPhone更新到iOS 9,现在手机识别器出现问题。 这是错误:
警告:手势识别器(; target = <(action = onVideoTap:,target =)>>) 在storyboard / xib中设置,以添加到多个视图中 ( - &gt ;; layer =>)一次,从未允许,现在强制执行。 从iOS 9.0开始,它将被放入它加载的第一个视图中 成。
iOS8没有这个问题。 该视图包含UIImageView和TextView。识别器被放入ImageView,并且只有这个视图的引用出口。
我真的不明白这个问题。 有人能帮助我吗?谢谢:))
答案 0 :(得分:12)
这种情况发生在我身上,因为我想使用点击手势识别与TableViewCell
中包含的TableView
中的图片。
我添加了一个点击手势识别器,但我的表格中有多个TableViewCell
(多个图片)。
iOS将UITapGestureRecognizer
分配给第一个单元格中的第一个图像,其他单元格将没有手势(手势已设置为仅第一个图像)。
User Interaction Enabled
以查找要UIView
分配的TapRecognizerGesture
。TableViewCell
中的添加了新的UITapGestureRecognizer
。代码:
internal let tapRecognizer1: UITapGestureRecognizer = UITapGestureRecognizer()`
在我的主视图TableView
中,对于每个单元格,将每个单元格中的UITapGestureRecognizer
分配给主视图中的主函数:
cell.tapRecognizer1.addTarget(self, action: "img_Click:")
cell.img.gestureRecognizers = []
cell.img.gestureRecognizers!.append(cell.tapRecognizer1)
单击时添加要激活的功能UITapGestureRecognizer
:
func img_Click(sender: UITapGestureRecognizer) {
print("ok")
}
UITapGestureRecognizer
操作直接在子视图中进行操作,则可以使用简单方法。addTarget
行中的相同。答案 1 :(得分:11)
我认为当您使用storyboard添加了Tap Gesture Recognizer时会发生此问题。因为某些原因你添加了多个视图。(见图)。
因此,删除其他错误的视图,保留正确的一个视图。
答案 2 :(得分:4)
已经修好了。 故事板是本地化的,我用一种语言将识别器分配给图片视图两次。 不知何故,这似乎也会在其他故事板上造成麻烦。