UIView没有动画

时间:2016-08-01 14:26:04

标签: ios objective-c animation uiview

我想动画UIView的中心,我在viewDidLoad中做了这个:

_test.center = CGPointMake(100.0,100.0);
[UIView animateWithDuration:10.0 
        delay:5 
        options:UIViewAnimationOptionCurveLinear 
        animations:^{_test.center = CGPointMake(100.0,-100.0);} 
        completion:^(BOOL finished) {

}];

但是当我运行代码时,测试视图的中心已经是100,-100。为什么它没有动画?

2 个答案:

答案 0 :(得分:0)

将代码从viewDidLoad移至viewDidAppear。在viewDidLoad中,UIView已加载,但目前尚未显示。

答案 1 :(得分:0)

我猜您正在使用自动约束,这会阻止您按照自己的方式设置动画。

要解决此问题,请尝试以下步骤:

首先:

将代码移至- (void)viewDidLayoutSubviews

第二

在对视图进行任何动画之前和之后执行以下步骤:

- (void)viewDidLayoutSubviews{

     _test.translatesAutoresizingMaskIntoConstraints = YES;

     _test.center = CGPointMake(100.0,100.0);
     [UIView animateWithDuration:10.0 
                           delay:5 
                         options:UIViewAnimationOptionCurveLinear 
                      animations:^{_test.center = CGPointMake(100.0,-100.0);} 
                      completion:^(BOOL finished) {
                      }];

     [_test updateConstraints];

}