iPhone: как я могу определить, какое касание закончилось?

В моем приложении я хочу определить, когда пользователь снимает второй палец и держит только один на экране.

Проблема в том, что мой touchesEnded:withEvent: показывает [[event allTouches] count] равным 2.

Как я могу определить, какое из касаний остается на экране?

Спасибо.


person CristiC    schedule 25.02.2011    source источник


Ответы (1)


Когда прикосновение совершается пользователем, срабатывает метод touchesBegan. Вы можете удерживать указатель на первом появившемся касании. Он не будет изменен, пока не закончится касание.

ИЗМЕНИТЬ:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ([touches count] == 1)
    {
        if (!myTouch) myTouch = [touches anyObject]; //I assume myTouch is set to nil in touchesEnded
    }
    else
    {
        //perform your logic for this case
    }
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ( myTouch && [touches containsObject: myTouch]
    {
        //perform your logic
        myTouch = nil;
    }
}

Я предполагаю, что в вашем классе есть переменная UITouch *myTouch, которая обрабатывает события касания.

person Andrew    schedule 25.02.2011