融智技术学院

 找回密码
 注册
查看: 610|回复: 0

【iPhone每日一问】根视图控制器的动画过渡,初始方向是错误的

[复制链接]
MrLi 发表于 2014-3-16 15:00:06 | 显示全部楼层 |阅读模式
问:
正如以下的这个文章:根视图切换时的过渡动画通过window.rootViewController从A到B再到C。代码如下:
  1. [UIView transitionWithView:self.window
  2.                   duration:0.5
  3.                    options: UIViewAnimationOptionTransitionFlipFromLeft
  4.                 animations:^{
  5.                                self.window.rootViewController = newViewController;
  6.                 }
  7.                 completion:nil];
复制代码
问题是我的应用程序只支持水平方向,但RootViewController的过渡期间,新的视图控制器出现在垂直模式下比横向模式旋转的更快速。
我确定:
1.        我设置了UISupportedOrientation为水平模式(home键在右边)
2.        对于每一个视图控制器,在shouldAutoRotateToOrientation方法中,我只设置了一个水平模式。
可能是什么原因呢?
答:
在刚才我调查了这个,因为我一直得到了同样的问题。我随机尝试了以下代码,并且它完美工作了:
  1. [UIView
  2.     transitionWithView:window
  3.     duration:0.5
  4.     options:UIViewAnimationOptionTransitionCrossDissolve
  5.     animations:^(void) {
  6.         BOOL oldState = [UIView areAnimationsEnabled];
  7.         [UIView setAnimationsEnabled:NO];
  8.         [(ICApp *)sharedApplication.delegate window].rootViewController = self;
  9.         [UIView setAnimationsEnabled:oldState];
  10.     }
  11.     completion:nil];
复制代码
我知道它有一点奇怪,在动画块内禁用/启动动画,但交叉解除动画,并且不旋转——该视图控制器已经出现旋转和准备滚动。
温馨提示:您的支持与理解,是我们工作最大的动力。如果您是从网上购买的图书,请在对应的网店,给予本书一个好评,我们将衷心感谢!!!
以下是《突破,Objective—C开发速学手册》对应的购书评论地址:
当当网:http://product.dangdang.com/23301950.html
亚马逊:http://www.amazon.cn/dp/B00DY89JIY
京东网:http://item.jd.com/11280184.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号 )

GMT+8, 2019-8-26 13:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表