2015-01-03 1 views
0

Я понимаю, что CADisplayLink лучше подходит для природы моего текущего проекта, однако я не могу понять, как реализовать CADisplayLink и заменить мой NSTimer.Как заменить этот NSTimer на CADisplayLink?

ниже код для моего NSTimer

Movement = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(BarMoving)  userInfo:nil repeats:YES]; 

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

ответ

0

Создание вещь:

_displayLink = [CADisplayLink displayLinkWithTarget:self 
        selector:@selector(BarMoving)]; 

запустить его командой:

[_displayLink addToRunLoop:[NSRunLoop mainRunLoop] 
    forMode:NSDefaultRunLoopMode]; 

... который будет вызывать вашу ссылку дисплея выдавать вызовы BarMoving на основной цикл выполнения (который является один связан с основным потоком и, следовательно, с основной очередью), когда этот цикл запуска находится в режиме по умолчанию. Так что, например, когда пользователь имеет прокрутку пальца, просмотр прокрутки приостанавливает ваш таймер. NSTimer имеет такое же поведение по умолчанию.