Как программно связать 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