iOS - проведите пальцем по сетке просмотров - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть суперпредставление с сеткой подпредставлений. Когда я перетаскиваю над / из подпредставлений, я хочу изменить его свойства (аналогично UIKeyboard на iPhone). Подвиды являются UIButton подклассами.

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

- прикосновения начались: с события:
- прикосновенияMoved: withEvent:
- прикосновения закруглены: с событием:
- прикосновения отменены: с событием:

Трассировка: withEvent:

1 Ответ

1 голос
/ 18 ноября 2011

Я думаю, вы можете использовать:

– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:

в вашем суперпредставлении.

Возможный подход - определить в touchesMoved, какое подпредставление в данный момент находится «под касанием» (то есть, в каком месте находится касание), и соответственно изменить его статус.

 -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
 {
     UITouch *touch = [[event allTouches] anyObject];
     CGPoint location = [touch locationInView:touch.view];
     if(CGRectContainsPoint(subview1.frame, location)) {
         ...
     }
 }

touchesBegan и touchesEnded не сыграют в этом большой роли; они будут полезны только для начала и завершения «отслеживания», которое вы выполняете в touchesMoved.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSSet *allTouches = [event allTouches]; 
    <save initial touch if you need it>
}


-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    <do whatever>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...