Перетаскивание 1 из 52 карт в UIView. Какой метод лучше? - PullRequest
1 голос
/ 19 декабря 2009

В настоящее время у меня есть 52 карты UIImageViews в IB UIView.

И моя цель - перетащить 1 из этих 52 карт в квадрат, и если карта упадет в квадрат, она останется там. В противном случае он вернется в исходное положение.

МОЙ вопрос, какой метод лучше?

  1. Создание пользовательского класса NSObject и замена каждой карты в IB на этот класс и использование этого кода в файле .m. `- (void) touchesMoved: (NSSet *) затрагивает событиеEvent: (UIEvent *) { UITouch * touch = [касается любого объекта];
    CGPoint location = [touch locationInView: self.superview];

    self.center = местоположение; }

  2. Объявить 52 IBOutlets и заставить их ответить на одно и то же действие

    i) Вспомогательный вопрос: есть ли способ, которым мне не нужно объявлять все 52 IBOutlets? ` Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 19 декабря 2009

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

0 голосов
/ 19 декабря 2009

Лучше всего будет добавить карточки через for loop, программно устанавливая тег каждой карточки, например, от x + 1 до x + 52, заставляя их реагировать на одно и то же действие, и проверять кадр на соответствие фрейма вашей карты. в -(void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { UITouch *touch = [touches anyObject]; это немного сложнее, но требуется гораздо меньше усилий, и все будет гораздо проще.

Надеюсь, это даст вам хорошую идею

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