我正在使用具有预览图像类的GPUImage
。必须将预览图像设置为屏幕方向才能正确输出。因此,我需要在应用启动时获得正确的方向。但是,[UIDevice currentDevice].orientation
或viewDidLoad
中的viewWillAppear
测试始终返回0(未知)。
所以我在viewDidLoad
:
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
它适用于iPhone和iPad mini - 当应用程序以横向方式启动时,设备会检测到它不在纵向中并重新定位到横向。然后调用viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
并为GPUImage
的预览设置了正确的输出。
然而,在更大的iPad尺寸中,这不会发生。当应用程序在Landscape中启动时,它认为它在Portrait中并且不会像在iPad Mini或iPhone中那样重绘为Landscape。没有致电viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
。我知道这是因为纵向或横向的iPad被认为是相同的方向。不知何故,我需要应用程序在启动后知道它在Landscape中,因此它可以调用旋转方法。
有什么建议吗?