Как обрабатывать событие клика в UIView - PullRequest
2 голосов
/ 28 февраля 2012

Я пишу простую карточную игру, и теперь я бы хотел, чтобы часть карты была нажата. Все мои карты являются объектами UIView, и в нем есть 2 UIImageView, чтобы показать заднюю или переднюю стороны карт , Я хочу справиться с щелчком мыши и не знаю, как это сделать. Есть ли интерфейс для добавления? Спасибо!

Ответы [ 5 ]

6 голосов
/ 28 февраля 2012

Вы можете создавать кнопки для своих карт (возможно, не лучшее решение) и обрабатывать события кнопок в своем коде.Вы можете использовать распознаватели жестов на своих картах или в вашем супервизии.Вы можете сделать каждую карту подклассом UIView и переопределить методы UIResponder , которые обрабатывают сенсорные события.

Или вы можете стать действительно хитрыми и сделать карты CALayer s,и просто обрабатывать события UIResponder в родительском представлении.Последнее предложение, вероятно, позволит вам максимально гибко анимировать карты, когда пользователь играет в вашу игру.

В любом случае, я думаю, что методы UIResponder - это то, что вам нужно.UIView является подклассом UIResponder, поэтому вам придется реализовать их в некотором подклассе, который вы определяете.

3 голосов
/ 28 февраля 2012

Вы изучали класс UIGestureRecognizer ?Это отлично подходит для привязки вызова функции к какому-либо взаимодействию.Существуют разные типы жестов, нажатий, пролистываний, сковородок.Похоже, что жест касания может помочь вам изменить UIImageView при каждом прикосновении к карте.

2 голосов
/ 09 июля 2012

@ Свертка верна: используйте UITapGestureRecognizer, чтобы распознать вкладку на объекте, у которого нет события щелчка.Это самое простое и чистое решение.

Создание подклассов для распознавания щелчка окупается только при создании пользовательского объекта, который вы будете использовать много раз.

1 голос
/ 28 февраля 2012

Просто установите пользовательскую кнопку под изображением. Тогда вам просто нужно сделать изображение неприкосновенным. Таким образом, метод, который вы подключили с помощью своей кнопки, будет выполнен на touchevents.

1 голос
/ 28 февраля 2012

Вместо использования UIImageView для отображения карточек, рассмотрите возможность использования UIButtons (с «custom» для типа кнопки, поэтому единственными видимыми границами являются границы изображений). Затем вы можете установить изображения вашей карты в качестве изображений для этих кнопок.

...