2014-02-15 2 views
0
// Animate tag view up 
    [UIView animateWithDuration:.2 animations:^{ 
     _tagView.center = (CGPoint){_tagView.center.x, _tagView.center.y+40}; 
    }]; 

Я пытаюсь анимировать мой _tagView, где он сейчас находится в IB, однако приведенный выше код ничего не делает. Что я делаю не так?animating a UIView up

+1

Вам нужно добавить больше информации для нас, чтобы выяснить, что случилось. Вы уверены, что этот код даже выполняется? Является ли '_tagView' ноль? и т. д. –

+0

код выполняется, _tagView не ноль и не скрыт. – Apollo

ответ

1

Во-первых, если вы хотите, чтобы переместить вид вверх, необходимо уменьшить значение y (так как происхождение в верхнем левом углу по умолчанию), как это:

[UIView animateWithDuration:.2 animations:^{ 
    _tagView.center = (CGPoint){_tagView.center.x, _tagView.center.y - 40}; 
}]; 

Этот код работает только отлично для меня, используя кнопку для запуска действия. С чем вы начинаете движение? Вот проект Xcode (iPad), который будет перемещать представление по вертикали вверх на 40 пикселей при каждом нажатии кнопки.

https://github.com/perlmunger/MoveUp.git

0

Я думаю, вам нужно отключить флаг «Использовать автозапуск» основного вида в Interface Builder. Автоматический макет включен по умолчанию при создании нового проекта.

enter image description here

+0

К сожалению, я уже сделал это – Apollo

+0

Я предполагаю, что исходная позиция _tagView отличается от ожидаемой конечной точки. – nzs

0

Во-первых, убедитесь, что вы добавили tagView в иерархии представлений, вызвав addSubview:. Во-вторых, сделайте свою анимацию в viewDidAppear:; в противном случае используйте animateWithDuration:delay:options:animations:completion:, если вы собираетесь сделать это в своем viewDidLoad.