Как программно связать UIView или UIImageView с событием типа "подправить изнутри"?

Интерфейсный Разработчик позволит мне подключать такие события только к кнопке. Но, как и в HTML, я просто хочу иметь пустой UIImageView, где - как только пользователь нажимает на него - вызывается метод. Я надеюсь, что есть какой-то крутой программный способ сделать это, о котором я не знаю.

ОБНОВИТЬ:

В моем View Controller, который создает UIImageView, я попытался сделать это:

SEL actionSelector = @selector(doSomethingWhenImageIsTouched:);
[self.myUIImageView addTarget:nil action:actionSelector forControlEvents:UIControlEventTouchUpInside];

Компилятор предупреждает меня, что UIImageView может не отвечать на addTarget:... что мне нужно сделать, чтобы он работал с UIImageView. В документации я вижу, что UIImageView не наследуется от UIControl, но addTarget: является частью UIControl.

ОБНОВИТЬ:

В итоге я создал UIButton после создания UIImageView. Затем я установил рамку этой кнопки в рамку UIImageView, а альфа в 0.1f. По некоторым причинам, это не будет работать, если альфа 0.0f. А потом я сделал это круто addTarget: вещь...

3 ответа

В SDK версии 3.2 (может быть раньше, я не знаю), вы можете добавить распознаватели жестов в UIView. UIGestureRecogniser - это абстрактный класс, который позволяет вам определять жест (касание, сжатие, пролистывание и т. Д.) И добавлять его в UIView, а когда распознаватель жестов распознает жест, он запускает действие для цели по вашему желанию.

читать все об этом в документах...:D

Здесь невозможно использовать модель целевого действия, поскольку UIImageView не наследуется от UIControl, как UIButton, а является производным от UIView. Поэтому, если вы хотите отследить прикосновения к представлениям или представлениям изображений, сначала вам нужно настроить класс, а затем поместить в него событие начала касания и выполнить операцию. В противном случае используйте UIGestures, которые могут вам очень помочь

UIViews обычно не нуждаются в выходах IBAction для получения сенсорных событий. Как правило, если представление находится под контролем viewController, вы можете проверить наличие событий UITouch, используя методы touchesBegan. Чтобы установить цель и селектор для управляющих действий, вы также можете использовать:

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
Другие вопросы по тегам