Поправьте меня, если я не понимаю, но каждая кнопка должна «знать», нажата ли она. В методе 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. Надеюсь, это поможет!