Я пытаюсь назначить UIImageView
действие, когда пользователь нажимает на него.
Я знаю, как создать действие для a UIButton
, но как я могу имитировать то же поведение a UIButton
, но используя a UIImageView
?
ios
swift
uiimageview
user3706773
источник
источник
@objc
модификатор в функцию.Вам необходимо добавить распознаватель жестов (для касания используйте UITapGestureRecognizer , для касания и удержания используйте UILongPressGestureRecognizer ) к вашему
UIImageView
.И реализовать метод селектора, как:
источник
Вы можете добавить a
UITapGestureRecognizer
в imageView, просто перетащите его в Storyboard / xib, перетащите Ctrl из imageView в gestRecognizer и перетащите Ctrl из gestRecognizer в Swift-файл, чтобы создатьIBAction
.Вам также необходимо включить взаимодействие с пользователем на
UIImageView
, как показано на этом изображении:источник
UIImageView
не реагирует на прикосновения по умолчанию. Вы также должны включить взаимодействие с пользователем.Для Swift 2.0 и выше сделайте это
источник
Код Swift4
Попробуйте это несколько новых методов расширения:
Теперь, когда мы хотим добавить a
UITapGestureRecognizer
в подклассUIView
илиUIView
какUIImageView
, мы можем сделать это без создания связанных функций для селекторов!Использование:
источник
На самом деле вы можете просто установить изображение того,
UIButton
что вы обычно вставляете вUIImageView
. Например, где вы будете делать:Вы могли бы вместо этого использовать:
Итак, вот как может выглядеть ваш код:
Самое замечательное в использовании этого метода заключается в том, что если вам нужно загрузить изображение из базы данных, вы можете установить заголовок кнопки, прежде чем устанавливать изображение:
Чтобы сообщить своим пользователям, что вы загружаете изображение
источник
Нужно добавить ленивый для регистрации TapGestureRecognizer,
так как 'self' в UITapGestureRecognizer (target: self ...) будет нулевым, если это не ленивый var. Даже если вы установите isUserInteractionEnable = true, он не будет регистрироваться без ленивых переменных.
источник
Вы можете поместить
UIButton
поверх экрана прозрачный фонUIImageView
и прослушать нажатие кнопки перед загрузкой изображения.источник
Swift 4 Code
Шаг 1 В ViewdidLoad ()
Шаг 2 Добавьте следующую функцию
Это проверено и работает правильно
источник
Я предлагаю разместить невидимую (непрозрачность = 0) кнопку на вашем изображении, а затем обработать взаимодействие на кнопке.
источник