Swift:UIImageView绑定UITapGestureRecognizer点击无响应问题
问题排查与解决方案
核心问题
初始化UITapGestureRecognizer时,target参数设置错误:
let tap = UITapGestureRecognizer(target: HomeViewController.self, action: #selector(tapFunction(sender:)))
此处传入的HomeViewController.self是类对象,而tapFunction是实例方法,手势识别器无法通过类对象调用实例方法,导致点击回调失效。
至于宽高设为200以上能触发回调,属于巧合——此时点击区域大概率覆盖到了其他可响应点击的父视图/控件,并非UIImageView的手势起作用。
修复步骤
将target改为当前ViewController的实例self:
let tap = UITapGestureRecognizer(target: self, action: #selector(tapFunction(sender:)))
验证效果
修改后,无论UIImageView宽高设为100还是其他数值,点击UIImageView的有效区域都会正常触发tapFunction回调,控制台会打印"image tap"。
内容的提问来源于stack exchange,提问作者Praveen Ramalingam
相关产品推荐
相关产品推荐

