如果 IOS7 subview 的父 View 正在设置动画,则 subview 会设置动画

标签 ios objective-c animation uiview ios7

当我开始针对 iOS7 进行测试时,我的一些 View 出现了一个非常奇怪的错误。看起来,如果任何可以动画的属性在 subview 中更改其值,而其父级正在经历动画,则更改也会被动画化。我有以下方法:

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

与此同时,我在该 View 上的 layoutsubviews 函数被调用,它更新了一些 subview 的位置。

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

在 iOS5/6 中,变化是瞬间发生的,但在 iOS7 中,它是动画的,所以你可以看到我的 subview 从它的初始位置慢慢地移动到它的最终位置。有什么想法吗?

最佳答案

我终于想通了。在IOS7中他们引入了一个新功能

+ (void)performWithoutAnimation:

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

关于如果 IOS7 subview 的父 View 正在设置动画,则 subview 会设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423291/

相关文章:

objective-c - 如何检查 CGSize 是否已初始化(或者它的值是否不同于 "nil")

javascript - 使用 jQuery 更改动画速度

javascript - div样式随动画变化?

iphone - 在编辑模式下防止 UITableView 默认行为

objective-c - iOS:AutoresizingMask 使用数组?

ios - ARC下使用Objective-C的method_invoke调用void方法

CSS3 背景图像悬停过渡

ios - 访问程序集的子程序集将生成 EXC_BAD_ACCESS

ios - MKDirections 不在 iOS map 上显示路线

iphone - 在objective-C中同步sqlite数据库