iPhone应用程序的单阶段与两阶段动画?

Dev*_*ted 16 iphone animation objective-c rotation

什么是用于旋转iPhone窗口的单状态和两阶段动画?

这是我在调试器控制台中收到的"错误"消息(没有崩溃):

Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.
Run Code Online (Sandbox Code Playgroud)

我正在研究交换项目中由Apress(Dave Mark,Jeff LaMarche)撰写的"开始iPhone开发:探索iPhone SDK"一书.

Ed *_*rty 15

UIViewController类参考中解释了所有内容.特别是查看顶部附近的View Rotation部分.

来自参考:

处理视图旋转

默认情况下,UIViewController类仅以纵向模式显示视图.要支持其他方向,必须覆盖该 shouldAutorotateToInterfaceOrientation: 方法,并为子类支持的任何方向返回YES.如果正确配置了视图的自动调整属性,则可能只需要执行此操作.但是,UIViewController类为您提供了额外的钩子,以根据需要实现其他行为.

要暂时关闭不需要的功能或在方向更改期间可能导致问题,您可以覆盖该 willRotateToInterfaceOrientation:duration: 方法并在那里执行所需的操作.然后,您可以覆盖该 didRotateFromInterfaceOrientation: 方法,并在方向更改完成后使用它重新启用这些功能.

如果要在方向更改期间执行自定义动画,可以通过以下两种方式之一执行此操作.方向更改过去分两步进行,通知发生在旋转的开始,中间和结束点.但是,在iPhone OS 3.0中,添加了对一步执行方向更改的支持.使用一步式方向更改往往比旧的两步式更快,并且通常建议用于任何新代码.

要为一步方向更改添加动画,请覆盖该 willAnimateRotationToInterfaceOrientation:duration: 方法并在那里执行动画.使用旧的两步法,覆盖的一个或两个 willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration: 方法的每一个步骤之前配置您的动画.您必须只选择一种技术并仅覆盖与该技术相关的方法.如果覆盖与两步技术关联的任一方法,则视图控制器默认使用该技术.

  • 不幸的是,这没有用.我没有使用任何方向功能,但仍然会发生此错误.似乎是OS4中的一个错误. (2认同)