好日子,我UIImageView里面UIView和我想处理事件,当用户点击UIView背景,但不是在UIImageView。我怎样才能实现它?我读过关于UITapGestureRecognizer的内容,但它让我有点困惑。点击UIImageView周围的识别器
P.S.如果你能迅速回答。
好日子,我UIImageView里面UIView和我想处理事件,当用户点击UIView背景,但不是在UIImageView。我怎样才能实现它?我读过关于UITapGestureRecognizer的内容,但它让我有点困惑。点击UIImageView周围的识别器
P.S.如果你能迅速回答。
如果你想上的子视图禁用UITapGestureRecognizer
你的主视图,那么你必须让这样的
imgTest.userInteractionEnabled = true;
您UIImageView
的用户交互,那么你必须设置你UITapGestureRecognizer
的委托检测视图3210,设置委托这样
let touch = (UITapGestureRecognizer(target: self, action: "tapDetected:"))
touch.delegate = self
self.view.addGestureRecognizer(touch)
然后,你要实现的UITapGestureRecognizer
委托方法中,你会发现这是目前触及这样
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.valueForKey("view")!.isKindOfClass(UIImageView) {
return false
} else {
return true
}
}
在上面的观点代码我有UIImageView
禁用点击手势现在,这种方法才有效为您self.view
不是UIImageView
func tapDetected(sender: UITapGestureRecognizer) {
self.dismissViewControllerAnimated(false, completion: nil)
}
为您的imageView添加此行,因为UIImageView默认的用户交互被禁用。如果您将启用的UIImageView用户交互,那么它不会为你的UIView工作和UIImageView的以外,将工作
yourImage.userInteractionEnabled = YES;
试试这个水龙头点击将工作
我试过了,没有帮助。 倍率FUNC viewDidLoad中(){ self.view.addGestureRecognizer(UITapGestureRecognizer(目标:自,动作: “tapDetected:”)) imgView.userInteractionEnabled =真 } + FUNC tapDetected(发件人:UITapGestureRecognizer){ 自.dismissViewControllerAnimated(false,completion:nil) } –
您是否定义了水龙头的数量,并且需要触摸并且还启用了用户界面。在你想要触摸的视图上?但基本上你应该可以通过(Obj-C - 对不起,没有快捷,但应该给你主要想法) 'UITapGestureRecognizer * singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap)]; singleTap.numberOfTapsRequired = 2; singleTap.numberOfTouchesRequired = 1; [_view addGestureRecognizer:singleTap];' –