2012-02-28 5 views
2

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

ответ

6

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

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

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

+0

Спасибо, сейчас это лучшее решение для меня, потому что я хочу, чтобы карты двигались для анимации, когда пользователь метнулся. – haxpanel

1

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

3

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

1

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

2

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

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

Смежные вопросы