2015-07-10 41 views
4

我在表格單元格中有一個UIImageView,我添加了一個tapGesture。 我想要訪問handleTap方法中的UIImageView從發件人快速獲取UIImage

這是TableCell的內部圖像的代碼:

func setImageForCell(cell:ImageCell, indexPath:NSIndexPath) { 
    var image : UIImage = UIImage(named: "brunnen1")! 

    cell.customImageView.userInteractionEnabled = true 
    cell.imageView!.tag = indexPath.row; 
    var tapGestureRecognizer = UITapGestureRecognizer(target:self, action:Selector("handleTap:")) 
    tapGestureRecognizer.numberOfTapsRequired = 1; 
    cell.customImageView.addGestureRecognizer(tapGestureRecognizer) 
    cell.customImageView.image = image 
} 


func handleTap(sender : UIView) { 
    // get the UIImageview from the sender, i guess ? 

} 

我想我必須從UIView投呢?

回答

7

試試看看這個代碼。

func handleTap(sender : UITapGestureRecognizer) { 
    let imgView = sender.view as! UIImageView 
    // Do something. 
} 

由於您使用的手勢識別,handleTap的發送者會UITapGestureRecognizer。手勢識別器具有你想要的。

var view: UIView? { get } //手勢所附的視圖。通過將識別器使用addGestureRecognizer一個UIView設置:方法

0

否,senderUITapGestureRecognizerUIView。你應該這樣做:

func handleTap(sender : UITapGestureRecognizer) { 
    let imageView = sender.view as! UIImageView 
}