Задать вопрос
@shevzoom
 dev., student at MEPhI

Как передать ImageView в аргумент функции?

по тапу cell.addGestureRecognizer(tap) все передается , но если я хочу передать именно ImageView, то он ничего не присваивает.
С чем может быть связано дело?

Пытался привязать tag = indexPath.row
Его он тоже не захотел передавать.

@objc func imageTapped(sender: UITapGestureRecognizer) {
            if sender.state == .ended {
                    print("UIImageView tapped")
            }
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        // dequeueReusableCell - подгружает из очереди переиспользуемую ячейку
        guard let cell = tableView.dequeueReusableCell(
            withIdentifier: NewsTableViewCell.identifier,
            for: indexPath
        ) as? NewsTableViewCell else {
                fatalError()
            }
        cell.configure(with: viewModels[indexPath.row])
    
        
        ///
        let tap = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped))
        cell.imageView?.isUserInteractionEnabled = true
        cell.imageView?.addGestureRecognizer(tap)
        ///
        return cell
    }
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
briahas
@briahas
ObjC, Swift, Python
Смотрите - в стандартной ячейке уже есть встроенная имаджвьюха. Но, я подозреваю, что вы вставили свою. А это значит - что вы присваиваете тапгестуру стандартной имаджвьюхе, а не своей.
Сделайте еще один метод, аля cell.configure, только configureImageGesture, куда передавайте гестуру. А внутри метода уже присваивайте геcтуру вашей имаджвьюхе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы