Я пытаюсь понять, как сделать так, чтобы кнопка не выделялась, когда touchmoved покидает рамку текущей выбранной кнопки. См. Код ниже. Приведенный ниже код должен позволять нажимать любую из трех кнопок по отдельности и пролистывать. Проблема, с которой я сталкиваюсь, заключается в том, что когда кнопки прокручиваются, например, с помощью touchmoved, кнопки вызывают действия, но никогда не устанавливают, чтобы кнопки не подсвечивались, когда прокрутка покидает рамку кнопки.
Заранее спасибо,
Азза
- (void)touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
for(UITouch *t in touches) {
CGPoint location = [t locationInView:t.view];
if((CGRectContainsPoint(Button1.frame, location)) && (!Button1.isHighlighted))
{
if (!Button1.isHighlighted){
[Button1 setHighlighted:YES];
[self doAction1];
}else{
[Button1 setHighlight:NO];
}
}
if((CGRectContainsPoint(Button2.frame, location)) && (!Button2.isHighlighted))
{
if (!Button2.isHighlighted){
[Button2 setHighlighted:YES];
[self doAction2];
}else{
[Button2 setHighlight:NO];
}
}
if((CGRectContainsPoint(Button3.frame, location)) && (!Button3.isHighlighted))
{
if (!Button3.isHighlighted){
[Button3 setHighlighted:YES];
[self doAction3];
}else{
[Button3 setHighlight:NO];
}
}
}
- (void)touchesBegan: (NSSet *)touches withEvent:(UIEvent *)event {
for(UITouch *t in touches) {
CGPoint location = [t locationInView:t.view];
if(CGRectContainsPoint(Button1.frame, location))
{
if (!Button1.isHighlighted){
[Button1 setHighlighted:YES];
[self doAction1];
}
}
if(CGRectContainsPoint(Button2.frame, location))
{
if (!Button2.isHighlighted){
[Button2 setHighlighted:YES];
[self doAction2];
}
}
if(CGRectContainsPoint(Button3.frame, location))
{
if (!Button3.isHighlighted){
[Button3 setHighlighted:YES];
[self doAction3];
}
}
}
- (void)touchesEnded: (NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *t in touches){
CGPoint location = [t locationInView:self.view];
if(CGRectContainsPoint(Button1.frame, location)) {
[Button1 setHighlighted:NO];
} else if(CGRectContainsPoint(Button2.frame, location)) {
[Button2 setHighlighted:NO];
} else if(CGRectContainsPoint(Button3.frame, location)) {
[Button3 setHighlighted:NO];
}
}
}