Как программно связать UIView или UIImageView с событием типа «подправить изнутри»? - PullRequest
3 голосов
/ 26 мая 2009

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

ОБНОВЛЕНИЕ:

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

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

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

UPDATE:

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

Ответы [ 3 ]

4 голосов
/ 02 мая 2010

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

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

1 голос
/ 01 ноября 2010

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

0 голосов
/ 26 мая 2009

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

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...