Отключить прикосновения / прокрутки во время обработки - PullRequest
1 голос
/ 06 апреля 2011

У меня есть приложение, содержащее UIScrollView с Paging = YES и со следующим тестовым кодом:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    sleep(1);
}

Если пользователь выполняет несколько пролистываний в течение этого 1-секундного сна, все события пролистывания выполняются один разосновной поток был освобожден, что дает «дикий» эффект.

Есть ли способ отключить касания / пролистывания во время выполнения этой работы по блокировке (конечно, в идеале не блокировать основной поток здесь, ноне всегда возможно!).

Я пытался обернуть 'сон' с setUserInteraction = NO / YES и setScrollingEnabled = NO / YES, но безуспешно.

1 Ответ

0 голосов
/ 07 апреля 2011

У моей подруги возникла эта проблема, когда она хотела отключить постукивания после действия в течение определенного периода времени.То, что вы хотите сделать, это использовать executeSelector: withObject: afterDelay: метод NSObject:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    userInteractionEnabled = NO;
    [self performSelector:@selector(enableUserInteraction) withObject:nil afterDelay: 1];
}

- (void)enableUserInteraction {
    userInteractionEnabled = YES;
}

Это грубо, так как я, вероятно, не имею правильного синтаксиса, но вы должны быть в состоянии следовать этому,и вы можете использовать его там, где считаете нужным.Отключите взаимодействие с пользователем, затем настройте событие таймера, чтобы вызвать функцию для ее повторного включения через определенный промежуток времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...