我有可以在纵向或横向模式下启动的应用程序。主屏幕上的控件看起来不同,具体取决于应用程序的模式。iPad在启动时无法识别正确的界面方向?
这是问题 - 如果我在横向模式下启动应用程序,控件不在应该出现的位置,它们保留自己的位置,如应用程序是纵向模式。我试图测试这一点,这里是我发现 -
在viewDidLoad和ViewWillappear我得到的信息,应用程序是在肖像模式,虽然应用程序是横向模式。鉴于确实出现了它被设置为正确的价值 - 景观模式。问题是我希望这些组件被设置在适当的位置,在视图出现之前(如果我不能清楚地看到它们在屏幕上重新定位)。
什么是正确的方法来处理?
编辑: 在viewDidLoad中和viewWillAppear中,我把这:
orientation = [self getOrientation];
if (orientation == OrientationsLandscape) {
NSLog(@"Landscape");
}
else {
NSLog(@"Portrait");
}
这里是实现[getOrientation]
- (int) getOrientation {
int currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(currentOrientation)) return OrientationsPortrait;
else return OrientationsLandscape;
}
和枚举DEF:
typedef enum {
OrientationsLandscape = 0,
OrientationsPortrait
} Orientations;
现在,如果设备是横向模式,我尝试安装我的应用程序,我会得到2次印有“人像”,而不是“风景”
我有同样的问题,但只有当设备面朝上。如果我将它放在手中,倾斜,则可以识别方向。如果我调用初始化后进行测试的计时器,它就可以工作。但是在applicationDidFinishLaunching和我的计时器调用之间,我有一个简短的白色屏幕......你找到了解决方案吗? – Martin 2012-12-07 09:45:08
我在这里发布了解决方案:http://stackoverflow.com/a/13763842/127493 – Martin 2012-12-07 13:17:07