2016-02-22 3 views
0

У меня есть жест отжима на UIImageView в классе, который расширяет UITableViewCell. Этот код должен работать, я не понимаю, почему это не так. Единственное, на что я надеюсь, это то, что должно быть «цель» - должно ли это быть profileImage или общий ViewController, в котором находятся вещи?Устранение неполадок с помощью жестов с краном

@IBOutlet weak var profileImage: UIImageView!  

var vc: TweetsViewController? = nil 

override func awakeFromNib() { 
    super.awakeFromNib() 
    let tapGester = UITapGestureRecognizer(target: vc, action: Selector("handleTapGester:")) 
    tapGester.delegate = self 
    profileImage.addGestureRecognizer(tapGester) 
} 

func handleTapGester(tapGesture: UITapGestureRecognizer) { 
    print("*******hi*******") 
    vc?.performSegueWithIdentifier("showProfile", sender: nil) 
} 

И для записи, поскольку это может показаться соответствующей ошибкой, я инициализирую vc, когда загружается ячейка таблицы.

+1

Возможный дубликат [Обнаружение Tap не работает на UIImageView] (http://stackoverflow.com/questions/23765590/tap-detection -на-рабочий на UIImageView) – Larme

ответ

0

Цель должна быть объектом, который будет обрабатывать жест нажатия, а функция handleTapGester должна находиться внутри класса объекта, указанного вами в качестве цели, а не внутри подкласса UITableViewCell.

Кроме того, необходимо включить взаимодействие пользователя на UIImageView, говоря:

imageView.userInteractionEnabled = true 
0

Почему бы просто не добавить распознаватель жестов к представлению, а затем, когда вызывается запрос indexPathForRowAtPoint, чтобы узнать, какая ячейка используется?

Если вы знаете ячейку, вы можете определить, используется ли UIImage, и сделать свой вызов для выполнения функцииSegueWithIdentifier.

Если он прослушивается в ячейке, которую вы не интересуете, пусть это проваливается и обрабатывается таблицей, вызывая отмену TouchesInView на распознающем устройстве.

Смежные вопросы