2017-02-10 2 views
1

У меня проблемы с использованием жестов, который я наложил на изображение. Изображение в настоящее время хранится в активах как «ActionLiked», и я установил изображение на это изображение. Затем он отображается в виде таблицы, который является динамическим на основе JSON (поэтому он повторяется для каждого элемента, который я помещал в массив JSON). Я добавил жест нажатия, чтобы распечатать «TAPPED» каждый раз, когда я нажимаю на него, но, похоже, он не работает все время - 7 элементов в настоящее время в таблице, жест нажатия будет работать на 1, а затем не работать на следующих 2 затем работать на 4-м одной и повторить эту схемуSwift 3 - Вид изображения с помощью жестов Tap

Пункт 1 - рАБОТА Пункт 2 - НЕТ рАБОТЫ Пункт 3 - НЕТ рАБОТЫ Пункт 4 - рАБОТА Пункт 5 - НЕТ рАБОТЫ Пункт 6 - НЕТ рАБОТЫ ПУНКТ 7 - РАБОТА

Я получаю сообщение об ошибке в моей консоли отладки Не удалось загрузить изображение «», на которое ссылается нить в комплекте с идентификатором Но изображение правильно показывает, что каждый из них не распознает жест нажатия?

+0

пожалуйста, покажите нам код ... –

ответ

10

После кода может помочь вам больше с быстрой 3

Как вы сказали, что вы хотите, чтобы обнаружить кран изображения на Tableview ячейки, пожалуйста, пройти через этот код:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.connected(_:))) 

    cell.yourImageView.isUserInteractionEnabled = true 
    cell.yourImageView.tag = indexPath.row 
    cell.yourImageView.addGestureRecognizer(tapGestureRecognizer) 

И добавить метод ниже к вашему ViewController

func connected(_ sender:AnyObject){ 
    print("you tap image number : \(sender.view.tag)") 
} 
+0

так, когда я пытаюсь это я получаю непойманные исключения каждый раз, когда я нажимаю на жест 'пусть tapGesture = UITapGestureRecognizer (цель: самостоятельная, действие: #selector (NewsFeedVC.likePost (_ :))) self.actionLike.isUserInteractionEnabled = истинная self.actionLike.addGestureRecognizer (tapGesture) '' FUNC likePost (_ отправитель: UITapGestureRecognizer) { печати ("ВЫЯВЛЯЕМЫЙ") } ' Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «-PostCell likePost:]: нераспознанный селектор отправлен t o instance 0x7fbc3e894a00 ' – Chad

+0

@ Как вы сказали, вам нужно это с помощью tableview, поэтому вместо использования self.actionLike для просмотра таблицы полезно использовать cell.actionLike, и для их идентификации вам нужно назначить тэг в соответствии с индексом ячейки в таблице. и убедитесь, что пользовательский интертекст для изображения ячейки включен. –

0

У меня недавно возникла проблема, которая кажется похожей на вашу. У меня было несколько изображений, все из которых я хотел ответить одинаково, когда пользователь их прослушивал. После некоторых экспериментов мне стало ясно, что каждый образ должен иметь свой собственный экземпляр UITapGestureRecognizer. Я закончил с использованием коды, как это, что обеспечило каждое изображение ответило на прослушивают:

for imageView in imageViews { 
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapResponse)) 
    imageView.addGestureRecognizer(tapGestureRecognizer) 
    imageView.isUserInteractionEnabled = true 
} 
0

Идея заключается в том, что вы должны создать уникальный жест распознаватель для каждого UIImageView.

let gestureRecognizerOne = UITapGestureRecognizer(target: self, action: #selector(tap)) 
firstImageView.addGestureRecognizer(gestureRecognizerOne) 

let gestureRecognizerTwo = UITapGestureRecognizer(target: self, action: #selector(tap)) 
secondImageView.addGestureRecognizer(gestureRecognizerTwo) 

Но я не видел код, так что, может быть, вы должны создать ее в цикле или что-то в этом роде.

4

Пожалуйста, проверьте isUserInteractionEnabled из UIImageView является true

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