我有一个绘图应用程序。在我的VC里面有五个imageViews,里面有五种颜色。我希望能够点击imageView并更改笔触颜色。如果我通过在每个UIImageView中添加手势识别器并拥有各自的“选择器”功能,在视图控制器中重复自己,可以轻松完成。如tapGesture自定义UIView
func redTapped() {}
func blueTapped() {}
不过,我希望能够使代码更清晰创建这些ImageViews自定义类(ColorImageView.Swift),所以,当我的类分配给这些按钮,他们自动获得点击手势,我的VC会自动接收关于哪一个被点击的信息。目前,我可以为每个分配给我班的图像打印出一张“imagePressed”。但是,我无法区分哪一个被按下。下面是我对ColorImageView.Swift
import Foundation
class ColorImageView: UIImageView {
private func initialize() {
let touchGesture = UITapGestureRecognizer(target: self, action: #selector(ColorImageView.imagePressed(_:)))
touchGesture.numberOfTapsRequired = 1
self.userInteractionEnabled = true
self.addGestureRecognizer(touchGesture)
}
override init(frame: CGRect) {
super.init(frame: frame)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
func imagePressed(gestureRecognizer: UITapGestureRecognizer) {
print("image pressed \(gestureRecognizer)")
}
}
我的ImageView名red.png,green.png,blue.png代码...等
感谢
请出示您的视图控制器编码我的意思是,你加ColorImageView到的ViewController – user3182143
我没有为我的VC任何代码呢。我希望能够首先区分哪些imageView是从自定义类中挖掘出来的。一旦完成,我可以使用协议将信息传递给我的VC。目前,当我按下图像时,我可以打印出如下图像..... 按下图像;目标= <(action = imagePressed :, target = )>> –
user172902
你在哪里设置图像? – user3182143