我想动画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。为什么它没有动画?
答案 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];
}