ios - 图像视图无法识别我的点击手势
问题描述
我正在尝试从图像中呈现 UIImagePickerController 并且它不起作用。我启用了用户交互,但我似乎仍然无法让它工作。
let cameraIconImageView: UIImageView = {
let image = UIImageView()
image.image = UIImage(named: "camera_icon")?.withRenderingMode(.alwaysTemplate)
image.tintColor = UIColor(r: 255, g: 122, b: 124, a: 1 )
image.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectProfileImage)))
image.layer.borderWidth = 2
image.layer.borderColor = UIColor(r: 255, g: 122, b: 124, a: 1 ).cgColor
image.layer.cornerRadius = 20
image.isUserInteractionEnabled = true
image.clipsToBounds = true
image.translatesAutoresizingMaskIntoConstraints = false
return image
}()
@objc func handleSelectProfileImage() {
let picker = UIImagePickerController()
present(picker, animated: true, completion: nil)
print(123)
picker.delegate = self
picker.allowsEditing = true
present(picker, animated: true, completion: nil)
}
解决方案
lazy var cameraIconImageView: UIImageView = {
let image = UIImageView()
image.image = UIImage(named: "camera_icon")?.withRenderingMode(.alwaysTemplate)
image.tintColor = UIColor(r: 255, g: 122, b: 124, a: 1 )
image.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSelectProfileImage)))
image.layer.borderWidth = 2
image.layer.borderColor = UIColor(r: 255, g: 122, b: 124, a: 1 ).cgColor
image.layer.cornerRadius = 20
image.isUserInteractionEnabled = true
image.clipsToBounds = true
image.translatesAutoresizingMaskIntoConstraints = false
return image
}()
在 Imageview 初始化中使用惰性。
推荐阅读
- maven - 带有 Junit 的 QAF-Cucumber:没有在 Maven 安装上执行的场景
- c# - Controls.Find() 返回 null
- python - 何时使用子类与何时在 Python 中使用 @classmethods?
- python - 训练 gru 模型时出现此错误 TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'
- python - 如果列值满足语句,如何提取整个数据框行?
- python - 使用决策树进行图像分类
- memory-management - 在 C++ 中释放内存的问题(删除运算符)
- c++ - Popen 崩溃 Qt 调试器
- typescript - Gulp + Webpack tsloader 移除 require.js 和定义 moduleName 注释
- python - 从 DataFrame.loc 访问 pandas 数据框中的列表