Как включить неявную анимацию UIView? - PullRequest
0 голосов
/ 18 марта 2012

Попытка обернуть мой мозг вокруг анимации здесь. Вот моя основная ситуация:

 _________
|Parent   |
|         |
|         |
|  _____  |  _____
| |A    | | |B    |
| |_____| | |_____|
|_________|

, где Parent - родительское представление, а A и B - экземпляры UIView. Я выбрал A и B UIView s, потому что, насколько я понимаю, слои не могут взаимодействовать с пользователем. Анимация, которую я хочу сделать, очень проста: я просто хочу, чтобы A скользил за кадром влево, а B скользил справа.

Я пробовал что-то вроде следующего:

CALayer *layer = viewA.layer;
layer.position = CGPointMake(initialLayer.position.x, initialLayer.position.y - 480);

но свойство немедленно обновляется без анимации.

Я смог заставить это работать, используя CABasicAnimation без особых проблем, но я хочу научиться использовать неявные анимации для такого рода сценариев, чтобы я мог быстрее создавать прототипы в будущем. Этот пост , кажется, предполагает, что UIView s не может выполнять неявную анимацию (по крайней мере по умолчанию).

Мой вопрос:

  1. Есть ли способ неявно анимировать свойства слоя UIView? Как?
  2. Если нет, есть ли лучший / канонический способ сделать это, отличающийся от моего метода?

1 Ответ

1 голос
/ 18 марта 2012

Вы можете использовать animateWithDuration:

[UIView animateWithDuration:2.0 animations:^{
    viewA.frame = newFrame;
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...