CADisplayLink
Оператор импорта
Swift
import QuartzCore
Objective C
@import QuartzCore;
Доступность
Доступный в iOS 3.1 и позже.
A CADisplayLink объект является объектом таймера, позволяющим Вашему приложению синхронизировать свое получение с частотой обновления дисплея.
Ваше приложение создает новую ссылку дисплея, обеспечивая целевой объект и селектор, который вызовут, когда обновляется экран. Затем, Ваше приложение добавляет ссылку дисплея к циклу выполнения.
Как только ссылка дисплея связана с циклом выполнения, селектор на цели вызывают, когда должно быть обновлено содержание экрана. Цель может считать ссылку дисплея timestamp свойство для получения времени, когда предыдущий кадр был выведен на экран. Например, приложение, выводящее на экран фильмы, могло бы использовать метку времени для вычисления, какой видеокадр будет выведен на экран затем. Приложение, выполняющее его собственные анимации, могло бы использовать метку времени, чтобы определить, где и как отображаемые объекты появляются в предстоящем кадре. duration свойство обеспечивает количество времени между кадрами. Можно использовать это значение в приложении для вычисления частоты кадров дисплея, приблизительное время, когда следующий кадр будет выведен на экран, и скорректировать поведение получения так, чтобы следующий кадр был подготовлен своевременно быть выведенным на экран.
Ваше приложение может отключить уведомления путем установки paused свойство к YEStrue. Кроме того, если Ваше приложение не может обеспечить кадры во время, если, можно хотеть выбрать более медленную частоту кадров. Приложение с более медленной, но непротиворечивой частотой кадров кажется более гладким пользователю, чем приложение, пропускающее кадры. Можно увеличить время между кадрами (и уменьшить очевидную частоту кадров) путем изменения frameInterval свойство.
Когда Ваше приложение заканчивается со ссылкой дисплея, оно должно вызвать invalidate удалить его из всех циклов выполнения и разъединить его с целью.
CADisplayLink не должен быть разделен на подклассы.
-
Возвращает новую ссылку дисплея.
Объявление
Swift
init!(targettarget: AnyObject!, selectorsel: Selector) -> CADisplayLinkObjective C
+ (CADisplayLink *)displayLinkWithTarget:(id)targetselector:(SEL)selПараметры
targetОбъект, который будет уведомлен, когда должен быть обновлен экран.
selМетод для обращения к цели.
Возвращаемое значение
Недавно созданная ссылка дисплея.
Обсуждение
Селектор, к которому обратятся цель, должен быть методом со следующей подписью:
- (void) selector:(CADisplayLink *)sender;
где отправитель является ссылкой дисплея, возвращенной этим методом.
Недавно созданная ссылка дисплея сохраняет цель.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
-
Регистрирует ссылку дисплея в цикле выполнения.
Объявление
Параметры
runloopЦикл выполнения для соединения со ссылкой дисплея.
modeРежим, в котором можно добавить ссылку дисплея к циклу выполнения. Можно указать пользовательский режим или использовать один из режимов, перечисленных в Ссылке класса NSRunLoop.
Обсуждение
Можно связать ссылку дисплея с многократными режимами ввода. В то время как цикл выполнения выполняется в режиме, Вы указали, ссылка дисплея уведомляет цель, когда требуются новые кадры.
Цикл выполнения сохраняет ссылку дисплея. Для удаления ссылки дисплея из всех циклов выполнения отправьте
invalidateобменивайтесь сообщениями к ссылке дисплея.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
См. также
-
Удаляет ссылку дисплея из цикла выполнения для данного режима.
Объявление
Параметры
runloopЦикл выполнения связался со ссылкой дисплея.
modeРежим цикла выполнения, в котором работает ссылка дисплея.
Обсуждение
Цикл выполнения выпускает ссылку дисплея, если это больше не связывается ни с какими режимами выполнения.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
См. также
-
Удаляет ссылку дисплея из всех режимов цикла выполнения.
Объявление
Swift
func invalidate()Objective C
- (void)invalidateОбсуждение
Удаление ссылки дисплея от всех режимов цикла выполнения заставляет его быть выпущенным циклом выполнения. Ссылка дисплея также выпускает цель.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
-
durationСвойствоВременной интервал между экраном обновляет обновления. (только для чтения)
Объявление
Swift
var duration: CFTimeInterval { get }Objective C
@property(readonly, nonatomic) CFTimeInterval durationОбсуждение
Значение на время не определено, прежде чем селектор цели вызвали, по крайней мере, один раз. Ваше приложение может вычислить количество времени, которое оно должно представить каждый кадр путем умножения
durationframeInterval.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
-
frameIntervalСвойствоЧисло кадров, которые должны передать перед ссылкой дисплея, уведомляет цель снова.
Обсуждение
Значение по умолчанию
1, который приводит к Вашему приложению, уведомляемому в частоте обновления дисплея. Если значение установлено в значение, больше, чем1, ссылка дисплея уведомляет Ваше приложение в части собственной частоты обновления. Например, устанавливая интервал в2заставляет ссылку дисплея запускать любой кадр, обеспечивая половину частоты кадров.Установка этого значения к меньше, чем
1результатами в неопределенном поведении и является ошибка программиста.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
-
pausedСвойствоБулево значение, утверждающее, приостановлены ли уведомления ссылки дисплея цели.
Объявление
Swift
var paused: BoolObjective C
@property(getter=isPaused, nonatomic) BOOL pausedОбсуждение
Значение по умолчанию
NOfalse. ЕслиYEStrue, ссылка дисплея не отправляет уведомления цели.Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
-
timestampСвойствоВременная стоимость связалась с выведенным на экран последним кадром. (только для чтения)
Объявление
Swift
var timestamp: CFTimeInterval { get }Objective C
@property(readonly, nonatomic) CFTimeInterval timestampОбсуждение
Цель должна использовать значение этого свойства для вычисления то, что должно быть выведено на экран в следующем кадре.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в iOS 3.1 и позже.
