我的应用程序在portratit模式下在iPhone上。我也有iPad版,可以旋转。现在,有了新的iPhone 6+,我想转动我的应用程序。我发现了有关此问题的任何问题/解决方案。
我能想到两种方式
a)更好的解决方案(imho) - 仅对某些设备启用旋转。可以在没有在项目设置中的某处编辑代码的情况下完成吗?
b)在iPhone6 +上使用iPad版故事板而不是经典的iPhone版故事板。可以在XCode故事板或项目设置中完成,还是我必须在我的代码中执行此操作?我没有找到其他解决方案,即根据设备识别在代码中加载某些故事板。答案 0 :(得分:3)
这是实现这一目标的简单方法。只需将以下内容添加到UIApplicationDelegate
:
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
static UIInterfaceOrientationMask rv = 0;
if( rv == 0 ) {
if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ) {
CGSize s = window.bounds.size;
if( MAX( s.width, s.height ) >= 700.0f ) {
rv = UIInterfaceOrientationMaskAllButUpsideDown;
} else {
rv = UIInterfaceOrientationMaskPortrait;
}
} else {
rv = UIInterfaceOrientationMaskAll;
}
}
return rv;
}
答案 1 :(得分:1)
Apple推荐的方法是将iPhone和iPad故事板合二为一,并在故事板中使用大小类来根据设备/方向更改约束。
至于在特定设备中启用旋转 - 您可以再次检查视图控制器内的大小类或检查特定设备的分辨率。我不认为有可能在项目设置中为设备类(iPhone 6与iPhone 6+)启用/禁用它。