0

当我开始针对 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 中,它会变成动画,因此您可以看到我的子视图从初始位置缓慢移动到最终位置。有什么想法吗?

4

1 回答 1

1

我终于设法弄清楚了。在IOS7中他们引入了一个新功能

+ (void)performWithoutAnimation:

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

于 2013-10-18T10:05:41.893 回答