2012-03-17 4 views
0

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

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

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

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

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

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

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

Мой вопрос:

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

ответ

1

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

[UIView animateWithDuration:2.0 animations:^{ 
    viewA.frame = newFrame; 
}]; 
+0

Спасибо. Это сработало отлично! – benekastah

Смежные вопросы