在iOS上,为什么shouldAutorotateToInterfaceOrientation被称为10,12或13次?

时间:2012-05-26 17:51:49

标签: iphone ios ipad uiviewcontroller uiinterfaceorientation

如果为iPad创建单一视图应用程序,则根据为plist设置的受支持设备方向以及shouldAutorotateToInterfaceOrientation返回的内容,shouldAutorotateToInterfaceOrientation可以被称为10,12或甚至13次

一个简单的例子是,如果“支持设备方向”设置为横向左侧,shouldAutorotateToInterfaceOrientation也仅返回横向左侧YES,那么如果我以横向左方向启动应用程序,那么shouldAutorotateToInterfaceOrientation将被连续12次调用。如果我以其他方向拿着它并启动应用程序,那么它是13次。

连续多次调用它的原因是什么?

1 个答案:

答案 0 :(得分:1)

正如我在UIDevice.h中看到的那样,方向类型不用作掩码,应该执行多个请求:

  • 检查当前方向是否受支持
  • 如果没有,请找到支持的方向,包括1-3或1-4个请求

对于单个方向更改,整个过程可能会发生多次(例如,系统可能希望将正确的通知发送到应用程序窗口,状态栏可能要独立检查方向,欢迎使用OOP,我是不是说它发生了,但它可能)虽然第一或第二阶段的结果可能以某种方式缓存一个组件而不是另一个组件。