UIButton категория / подкласс перетаскивания iPad - PullRequest
1 голос
/ 31 июля 2011

Я не знаю, как лучше решить эту проблему:

У меня есть несколько перетаскиваемых кнопок в приложении, которые можно перемещать поверх некоторых целей. Если кнопка находится над правой целью, скажем, кнопка1 находится над целью1, игрок / пользователь получает очко. Я подумал, что лучший способ справиться с этим - создать класс Target с атрибутом «identifier» и класс Draggable с атрибутом «targetID». Когда объект Draggable освобождается, я проверяю, находится ли он поверх правого целевого объекта, сравнивая их атрибуты.

Звучит просто, но это не так. Сначала я попытался сделать Draggable подклассом UIButton. Как вы, возможно, уже знаете, это не очень хорошая идея, поскольку UIButton возвращает экземпляр другого класса, когда вызывается [UIButton buttonWithType:], например. UIButtonTypeRoundedRect возвращается. Я не могу использовать категорию, так как мне нужно иметь дополнительный атрибут, и, насколько я знаю, категории не могут добавлять атрибуты в класс, только методы. Композиция усложнит все, так как мне придется «прослушивать» действия кнопок от контроллера Draggable. Однако я выберу этот вариант, если не придумаю более разумный вариант.

Возможно, я наблюдаю за чем-то очень очевидным, или я не знаю чего-то абсолютно базового. В таком случае, извините! Мои знания iOS очень просты.

1 Ответ

2 голосов
/ 31 июля 2011

UIButton - это разновидность UIView, которая обладает свойством tag, которое можно использовать для обозначения чего угодно.Это NSInteger, но это должно быть полезно для того, что вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...