如果I777子视图的父视图正在设置动画,则会对其进行动画处理

时间:2013-10-17 09:46:47

标签: ios objective-c animation uiview ios7

当我开始针对iOS7进行测试时,我的一些观点有一个非常奇怪的错误。看来,如果任何可以设置动画的属性,在子视图中更改其值,而其父级正在通过动画,则更改也会变为动画。我有以下方法:

- (void)performAnimation{
   [UIView animateWithDuration:0.42
                         delay:0
                       options:UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionBeginFromCurrentState
                    animations:^{
                     self.myView.contentInset = contentInset;
                 }
                 completion:NULL];
}

与此同时,我调用了该视图上的layoutsubviews函数,并更新了某些子视图的位置。

-(void)layoutSubviews{
      self.someSubview.frame = CGRectMake(10,20,30,40);
}

在iOS5 / 6中,变化是瞬间发生的,但在iOS7中它会变得动画,因此您可以看到我的子视图从其初始位置缓慢移动到最终位置。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我终于弄明白了。在IOS7中,他们引入了一个新功能

+ (void)performWithoutAnimation:

我只是将我的代码包含在layoutSubviews中,不需要的动画就消失了。