CADisplayLink
Оператор импорта
Swift
import QuartzCore
Objective C
@import QuartzCore;
Доступность
Доступный в iOS 3.1 и позже.
A CADisplayLink
объект является объектом таймера, позволяющим Вашему приложению синхронизировать свое получение с частотой обновления дисплея.
Ваше приложение создает новую ссылку дисплея, обеспечивая целевой объект и селектор, который вызовут, когда обновляется экран. Затем, Ваше приложение добавляет ссылку дисплея к циклу выполнения.
Как только ссылка дисплея связана с циклом выполнения, селектор на цели вызывают, когда должно быть обновлено содержание экрана. Цель может считать ссылку дисплея timestamp
свойство для получения времени, когда предыдущий кадр был выведен на экран. Например, приложение, выводящее на экран фильмы, могло бы использовать метку времени для вычисления, какой видеокадр будет выведен на экран затем. Приложение, выполняющее его собственные анимации, могло бы использовать метку времени, чтобы определить, где и как отображаемые объекты появляются в предстоящем кадре. duration
свойство обеспечивает количество времени между кадрами. Можно использовать это значение в приложении для вычисления частоты кадров дисплея, приблизительное время, когда следующий кадр будет выведен на экран, и скорректировать поведение получения так, чтобы следующий кадр был подготовлен своевременно быть выведенным на экран.
Ваше приложение может отключить уведомления путем установки paused
свойство к YES
true
. Кроме того, если Ваше приложение не может обеспечить кадры во время, если, можно хотеть выбрать более медленную частоту кадров. Приложение с более медленной, но непротиворечивой частотой кадров кажется более гладким пользователю, чем приложение, пропускающее кадры. Можно увеличить время между кадрами (и уменьшить очевидную частоту кадров) путем изменения frameInterval
свойство.
Когда Ваше приложение заканчивается со ссылкой дисплея, оно должно вызвать invalidate
удалить его из всех циклов выполнения и разъединить его с целью.
CADisplayLink
не должен быть разделен на подклассы.
-
Возвращает новую ссылку дисплея.
Объявление
Swift
init!(target
target
: AnyObject!, selectorsel
: Selector) -> CADisplayLinkObjective C
+ (CADisplayLink *)displayLinkWithTarget:(id)
target
selector:(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
Обсуждение
Значение на время не определено, прежде чем селектор цели вызвали, по крайней мере, один раз. Ваше приложение может вычислить количество времени, которое оно должно представить каждый кадр путем умножения
duration
frameInterval
.Оператор импорта
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: Bool
Objective C
@property(getter=isPaused, nonatomic) BOOL paused
Обсуждение
Значение по умолчанию
NO
false
. ЕслиYES
true
, ссылка дисплея не отправляет уведомления цели.Оператор импорта
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 и позже.