У меня есть UIView, и я добавил к нему жест касания:
let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
tap.delegate = self
myView.addGesture(tap)
Я пытаюсь вызвать это программно в тестовом файле.
sendActionForEvent
Я использую эту функцию, но она не работает:
myView.sendActionForEvent(UIEvents.touchUpDown)
Показывает нераспознанный селектор, отправленный экземпляру.
Как я могу решить эту проблему?
imageView.userInteractionEnabled = true
если вы используете вид изображения. Занимался этим слишком долго.Ответы:
Вам нужно инициализировать
UITapGestureRecognizer
с целью и действием, например так:Затем вы должны реализовать обработчик, который будет вызываться каждый раз, когда происходит событие касания:
Теперь вызов вашего обработчика событий распознавания жестов касания так же прост, как вызов метода:
источник
tap.delegate = self
не нужен, так как вы уже установили цель и действиеДля тех, кто ищет решение Swift 3
источник
isUserInteractionEnabled
действительно необходимо? по умолчанию ложь?view.isUserInteractionEnabled = true
является ключом, когда вы используете ImageView или любой подкласс UIVIew вместо UIControl.Для Swift 4 :
В Swift 4 вам нужно явно указать, что триггерная функция вызывается из Objective-C, поэтому вам нужно добавить @objc также в свою функцию handleTap.
Смотрите ответ @Ali Beadle здесь: Swift 4 добавить жест: переопределить против @objc
источник
view.isUserInteractionEnabled = true
является ключом, когда вы используете ImageView или любой подкласс UIVIew вместо UIControl.Просто примечание - не забудьте включить взаимодействие в представлении:
источник
ШАГ 1
ШАГ 2
ШАГ 3
ШАГ: 4
ВЫВОД
источник
Реализация жеста крана
Вызывает эту функцию при распознавании касания.
Обновление для For Swift 3
источник
Swift 4
источник
Вот как это работает в Swift 3:
источник
Полный ответ для Swift 4
Шаг 1: создайте точку для представления
Шаг 2: определить жест касания
Шаг 3: создайте функцию ObjC (вызывается при касании вида)
Шаг 4: добавьте следующее в viewDidLoad ()
источник
Swift 5.1 Пример для трех просмотров
Шаг: 1 -> Добавить представление раскадровки и добавить представление розеткиКонтроллер UIView
Шаг: 2 -> Добавить тег storyBoard view
Шаг: 3 -> Добавить жест
Шаг: 4 -> выберите вид
источник
Я работал на Xcode 6.4 на Swift. Увидеть ниже.
источник
Если вы хотите, чтобы код Objective C был приведен ниже,
или вы хотите быстрый код указан ниже,
источник
Вам нужно инициализировать UITapGestureRecognizer с целью и действием, например так:
Затем вы должны реализовать обработчик, который будет вызываться каждый раз, когда происходит событие касания:
источник
источник
Swift 4
Сначала создайте объект UITapGestureRecognizer
Второй шаг - инициализация UITapGestureReconizer. Включите взаимодействие с пользователем, затем добавьте его.
В-третьих, создать метод
источник
попробуйте следующее расширение
и затем используйте это:
Вы даже можете использовать его для клетки
источник
Я работал на Xcode 7.3.1 на Swift 2.2. Увидеть ниже.
источник
addTapGesture()
в свойviewDidLoad()
Я хотел указать два момента, которые вызывали у меня проблемы.
источник
xCode 9.3, Swift 4.0
источник
Внутри ViewDidLoad
источник
Вот самый простой способ добавить жесты на просмотр в Swift 5
источник
Попробуйте следующий быстрый код (проверено в Xcode 6.3.1):
Обратите внимание, что вашей целью может быть любой подкласс UIResponder, см. (Протестировано в Xcode 6.3.1):
источник
Вместо вызова UITapGestureRecognizer myView, вы можете напрямую вызвать
handleTap
функцию,источник