2017-01-18 2 views
0

У меня есть TableViewCell внутри его собственного класса под названием VersionCellVC.Как открыть новый экран при нажатии на UIImageView, который находится в классе UITableViewCell?

У меня есть UIImageView, полностью закрывающий камеру; поэтому у пользователей нет выбора, кроме как использовать UIImageView, а не TableViewCell.

Я хочу выполнить segue или представить vc, и я уже создал распознаватель жестов и функцию, которую он вызывает. однако, поскольку я являюсь пользовательским подклассом UITableViewCell, мне сообщили, что мне не разрешено использовать функции present(vc:animate:complete) или prepare(forSegue:..:)), поскольку они не являются членами класса UITableViewCell.

Как решить эту проблему без изменения UIImageView в UIButton?

ответ

0

что-то вроде этого (в вашем контроллере view, который содержит табличное представление)?

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell 

    cell.myImageView?.isUserInteractionEnabled = true 
    cell.myImageView?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageViewTapped(imageView:)))) 

    return cell 
} 

func imageViewTapped(imageView: UIImageView) { 
    if let indexPath = tableView.indexPathForRow(at: imageView.convert(.zero, to: tableView)) { 
     print("user tapped imageview at indexPath \(indexPath)") 
    } 
} 
Смежные вопросы