Мой уровень представления не соответствует слою моей модели, даже если у меня нет анимации - PullRequest
3 голосов
/ 05 апреля 2010

На iPhone у меня есть CALayer, который я оживляю с помощью Core Animation. Затем в какой-то момент я меняю вид контроллеров. Затем я возвращаюсь к контроллеру вида с CALayer и в viewWillAppear: я устанавливаю свойства рамки и положения на моем слое, чтобы переместить его обратно в начальную точку.

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

В руководстве по программированию CA написано:

"Вы можете запросить экземпляр CALayer для его соответствующего уровень представления во время транзакции анимации. "

Что для меня означает, что уровень представления должен отличаться от уровня модели только во время анимации. Но в данный момент нет анимации. Я даже использовал kCATransactionDisableActions, чтобы при установке свойства position неявная анимация не запускалась.

Кто-нибудь знает, почему слои моей презентации и модели не синхронизированы?

Спасибо.

Ответы [ 2 ]

1 голос
/ 05 апреля 2010

Один из обходных путей, который я использовал, - это сброс положения моих слоев в viewWillDisappear. Также я заметил, что если я не анимирую свой слой сразу, он действительно переместится в положение, которое я установил в viewWillAppear.

0 голосов
/ 26 февраля 2013

Похоже, Apple просто использует слой презентации во время анимации и обновляет его. Когда это не анимация, он должен использовать нормальный слой. Моя единственная ставка - это то, как им удается обрабатывать пользовательский интерфейс и избегать странных ошибок. Это может даже быть связано с тем, какие потоки используются.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...