Протокол CAAction
выглядит немного плохо документированным и редко комментируется в книгах и блогах. Аргументы для его единственного метода, runActionForKey:object:arguments:
, немного таинственны. По моему опыту, аргумент «object» всегда кажется CALayer
, а словарь «аргументов» всегда nil
.Какие значения могут использовать CAAction runActionForKey: object: arguments: arguments take?
Похоже, что протокол, возможно, был разработан для использования в нескольких местах в Core Animation, иначе почему бы не определить тип аргумента layer и почему дополнительный словарь не используется? Но, насколько я могу судить, он используется только с CALayer
. Это верно? Есть ли у кого-нибудь примеры, когда вышеприведенные выводы неверны?
Спасибо, @ Matt. У меня есть твоя книга, и я уже это читал. (Проводил много времени в этой главе на прошлой неделе!) Я понимаю, как подключиться к механизму поиска; Я просто пытался понять дизайн и использование протокола, учитывая эти странности, о которых я упоминал. Я создал оболочку для создания 'CAAction' с использованием блока и хотел бы, по возможности, упростить интерфейс. –
Спасибо также @matt, но я думаю, что есть два ошибки/упущения в Ch 17: Hooking Into Action Search. Возврат Nil не приводит к отключению анимации для каждого из них, поиск продолжается только в соответствии с [1.2] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreAnimation_guide/ReactingtoLayerChanges/ReactingtoLayerChanges. HTML # // apple_ref/DOC/UID/TP40004514-СН7-SW2). Возвращение NSNull отменяет поиск, хотя (1.3). И, во-вторых, триггеры могут также быть в любом свойстве KVC, даже если те, которые сами по себе не анимируются (одна и та же ссылка). –
@chrisco Я думаю, вы найдете, что поиск правильно описан в текущем выпуске книги. Спасибо за то, что вы используете KVC для запуска поиска; Я посмотрю, как добавить, если есть еще одно издание! – matt