一段代码在iOS 6中工作,但在iOS 5中不起作用

时间:2012-10-23 23:04:34

标签: iphone ios animation rotation orientation

问题是我在表格视图单元格中有一个简单的视图动画,但是当我在iPhone 6模拟器中运行时效果很好,但是当我在iPhone 5中运行时,模拟器不起作用。此外,旋转方向在iOS 5中不起作用,但在iOS 6中起作用。我已经验证了这些方法没有被弃用。我检查了一切,但没有任何改变。

事实上,在iOS 6中一切正常但在iOS 5中不起作用,但不会崩溃,只是不起作用。

使用代码编辑:

[UIView beginAnimations:@"HideRow" context:nil]; 
[UIView setAnimationDuration:0.3]; 
scrollView.contentOffset = CGPointMake(0, 0); 
[UIView commitAnimations]; 

1 个答案:

答案 0 :(得分:0)

我真的怀疑你支持iOS 3.x,所以只需改为animation blocks。用以下代码替换您的代码:

[UIView animateWithDuration:0.3 animations:^{
    scrollView.contentOffset = CGPointMake(0, 0); 
}];

注意:另请注意,模拟器不是您理想的测试环境。尝试在运行iOS 5的设备上运行该应用程序。


好的,昨天,我得到了你解释的完全相同的“症状”。我有一些在iOS 5中跳过的动画代码,但在iOS 6中工作。正如预期的那样,我的代码没有任何问题,也没有你的...问题是我们正在执行它时

在我的情况下,并且非常确定您的情况类似,我在应用程序启动时立即加载的视图控制器的viewDidLoad中执行此操作。因此,一个非常简单的解决方法是用一些GDC魔法包装它:

dispatch_async(dispatch_get_main_queue(), ^{
    [UIView animateWithDuration:0.65f
                     animations:^{
                         splashView.frame = CGRectOffset(splashView.frame, 0, splashView.bounds.size.height);
                     }];
});