addGestureRecognizer(_:) 一个手势对象只绑定一个view

// 只有最后一个imgv有点击事件
let tap = UITapGestureRecognizer(target: self, action: #selector(selectedItem(_:))) for imgv in imgvs {
imgv.isUserInteractionEnabled = true
imgv.addGestureRecognizer(tap)
}

// 所有的imgv都有点击事件
for imgv in imgvs {
imgv.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(selectedItem(_:)))
imgv.addGestureRecognizer(tap)
}

子视图设置了isUserInteractionEnabled = true,导致父容器无法接收到点击事件。

iOS开发过程中易犯的小错误-LMLPHP

UIControl调用addGestureRecognizer(_:)后,却点击无效?原来是里面的 image和label 都设置了 isUserInteractionEnabled = true ,导致事件被它们拦截了。

framework 不能包含 framework

假如你是开发framework项目,那你应该警惕这一点。Xcode并不允许framework里面包含其它的framework,但是可以包含静态库。

05-02 04:35