перетаскивание программно сгенерированных UIButtons - PullRequest
0 голосов
/ 06 февраля 2011

Я создал много uibutton динамически через цикл for и добавил их в сцену.Теперь я хочу добавить возможность перетаскивания для каждой кнопки.Как я могу это сделать?

Скажем, игра, как брейкер, у вас есть весло.Это единственный объект, который будет перетаскиваться игроком, поэтому все, что нам нужно, это добавить объект uibutton для весла и обновить его центр в touchesBegan и touchesMoved.

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

1 Ответ

0 голосов
/ 06 февраля 2011

Поправьте меня, если я не понимаю, но каждая кнопка должна «знать», нажата ли она. В методе touchesMoved:withEvent: не могли бы вы просто установить центр на место касания, или мне чего-то не хватает?

Попробуйте это.

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    if (self.highlighted) {
        UITouch *touch = [touches anyObject];
        self.center = CGPointMake(touch.x, touch.y);
    }
}

Конечно, в этом коде есть пара проблем, таких как неадекватная работа с несколькими касаниями, но я надеюсь, что это поможет. Если вы просто хотите узнать, какая кнопка в данный момент нажата, вы можете использовать свойство highlighted UIControl. Надеюсь, это поможет!

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