我有一個繪圖應用程序。在我的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