Как не прерывать каждое выполнение scrollView и NSTimer программно?

На прокрутку Scrollview и NSTimer влияет основной поток, поэтому я не могу обрабатывать две задачи одновременно.

Когда происходит прокрутка в определенное время, как программно справиться с двумя задачами (NSTimer, прокрутка)?

MyView добавляет Scrollview, и в то же время выполняется каждая вторая анимация NSTimer.

Однако при прокрутке NSTimer не работает анимация. работы удерживаются (они ждут в очереди.) в конце прокрутки (называется scrollViewDidEndDecelerating), выполняется анимация ожидающих работ.

При прокрутке я хотел бы одновременно работать с NSTimer.


person bitmapdata.com    schedule 12.11.2011    source источник
comment
Попробуйте поместить анимацию во второй поток (NSThread)   -  person Cyprian    schedule 13.11.2011
comment
Как написать Код? насколько я знаю, NSTimer должен выполняться в MainThread. Как выполнить BackgroundThread?   -  person bitmapdata.com    schedule 13.11.2011


Ответы (1)


Вы не предоставили никакого кода, поэтому я просто напишу, как вы могли бы разделить свою задачу на два разных потока.

Чтобы переместить анимацию в фоновый поток, чтобы она не прерывалась, используйте:

[self performSelectorInBackground:@selector(METHOD_NAME) withObject:nil];

пример:

-(void)doStuff{
    //Whatever you call here will be executed on main thread.
    NSLog(@"This is main thread");

    [self performSelectorInBackground:@selector(animate) withObject:nil];
}

-(void)animate{
    //Whatever you call here will be executed on a background thread.
    NSLog(@"This is background thread");
}

Не злоупотребляйте потоками, они потребляют много ресурсов. Используйте их всякий раз, когда это необходимо.

person Cyprian    schedule 13.11.2011