我的iPhone应用程序目前都处于纵向模式。
但我需要在宽屏模式下播放视频,并绘制一些在纵向模式下效果最佳的ui元素。此外,屏幕上有时会输入一些文字,因此键盘也需要显示为肖像。
是否有可能告诉UIViewController何时加载它需要转到Landscape,堆栈上的父视图将是Portrait。
我不想检测用户旋转,我想决定哪些屏幕是风景画,哪些是肖像画。
所以回顾一下,我的应用程序上的everyscreen / view将是肖像,除了我想制作Landscape的那个。可以吗?
非常感谢, -code
答案 0 :(得分:2)
在你的UIViewController中实现这个方法
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
BOOL result = NO;
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
result = YES;
}
return result;
}
然后返回YES
以获得您想要支持的方向
这个方法在加载时会调用你的UIViewController,因此每次进入UIViewController时都不会调用它。
如果你想绝对确定所有其他UIViewController都是你想要的方向,那么也要在它们中实现这个方法。
答案 1 :(得分:1)
是的,使用[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]];
或肖像作为纵向。
答案 2 :(得分:0)
override func viewWillAppear(animated: Bool) {
let value = UIInterfaceOrientation.LandscapeRight.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
UIApplication.sharedApplication().statusBarHidden = true
}
override func shouldAutorotate() -> Bool {
return true
}
并将其更改为您想要的(LandscapeRight,LandscapeLeft或Portrait)