2个竖屏和横屏的故事板(Storyboard)

3
有没有可能创建两个Storyboard,一个是竖屏的,另一个是横屏的,并根据设备方向来访问它们? 就像这样:

有没有可能创建两个Storyboard,一个是竖屏的,另一个是横屏的,并根据设备方向来访问它们? 就像这样:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) 
    {
        self.storyboard = (one of the storyboards);
    }
    else
    {
        self.storyboard (the other);
    }
}

这段代码无法运行。有没有其他可行的代码?

https://dev59.com/ZGsz5IYBdhLWcg3wlYwn - JAHelia
2个回答

2
我认为有一种更简单的方法来处理不同方向的布局问题。您可以通过使用 layoutSubviews 方法直接从视图内部管理视图的布局。每次视图的框架发生更改时(例如发生方向更改时),都会调用此方法。您可以在其中根据视图大小进行自定义布局。这假设您只想管理布局,如果您需要不同的故事板,因为导航取决于方向不同(这是不被苹果推荐的),那么这将无法帮助您;但再次,这确实不是最好的方法。希望它有所帮助!

1
我想要一个不同的故事板来构建清晰的界面,而不是自动调整所有对象的大小。 - Alessandro

1

在旋转时更改Storyboard是非常可行的。这与在旋转时更改视图控制器几乎相同。

您不应该使用shouldAutorotateToInterfaceOrientation:。此方法被调用以询问是否允许旋转。它并不是旋转本身。 您应该使用willRotateToInterfaceOrientation:duration:,因为这会在旋转即将开始时调用。

至于在不同的Storyboard中更改视图控制器,我建议this video tutorial。我在几天前看过它,发现自己能够在观看后使用多个Storyboards。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接