2016-08-18 101 views
-1

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

感謝

editVC

+0

請出示您的視圖控制器編碼我的意思是,你加ColorImageView到的ViewController – user3182143

+0

我沒有爲我的VC任何代碼呢。我希望能夠首先區分哪些imageView是從自定義類中挖掘出來的。一旦完成,我可以使用協議將信息傳遞給我的VC。目前,當我按下圖像時,我可以打印出如下圖像..... 按下圖像;目標= <(action = imagePressed :, target = )>> – user172902

+0

你在哪裏設置圖像? – user3182143

回答

1

你可以輕鬆獲取標籤。它工作正常。

func imagePressed(gestureRecognizer: UITapGestureRecognizer) 
{ 
    print("image pressed \(gestureRecognizer)") 
    let tappedImageVIew = gestureRecognizer.view as! UIImageView 
    print("image pressed \(tappedImageVIew.tag)") 
} 
+0

工程就像一個魅力!非常感謝 – user172902

+0

非常感謝你的兄弟 – user3182143

+0

不客氣:-) – user3182143