Да.
В вашем .h файле
IBOutlet UIButton *aButton;
В вашем .m файле
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event touchesForView:self.view] anyObject];
CGPoint location = [touch locationInView:touch.view];
if(CGRectContainsPoint(p1.frame, location))
{
if (!p1.isHighlighted){
[self pP01];
[p1 setHighlighted:YES];
}
}else {
[p1 setHighlighted:NO];
}
//
if(CGRectContainsPoint(p2.frame, location))
{
if (!p2.isHighlighted){
[self pP02];
[p2 setHighlighted:YES];
}
}else {
[p2 setHighlighted:NO];
}
if(CGRectContainsPoint(p3.frame, location))
{
if (!p3.isHighlighted){
[self pP03];
[p3 setHighlighted:YES];
}
}else {
[p3 setHighlighted:NO];
}
}
И, наконец, в Интерфейсном Разработчике подключите вашу кнопку к «aButton» и отключите «Взаимодействие с пользователем включено» для вашей кнопки.
Это важно, потому что это позволяет touchesMoved справиться с этим.
Я изменил код выше, чтобы проверить состояние выделенных кнопок. Это нужно для того, чтобы он не нажимал кнопку несколько раз при перемещении пальца в область.
Чтобы заставить ваши клавиши пианино работать, когда вы нажимаете на них, используйте -(void)touchesBegan
Чтобы вернуть состояния подсветки кнопок на = NO;
, используйте -(void)touchesEnded
Мне пришлось выяснить, что же вы ищете. Я не мог понять Touch Drag Enter
Поэтому, чтобы избежать нескольких сообщений на эту тему, пожалуйста, ознакомьтесь с моим вопросом и ответами.
вопрос 1
вопрос 2