gpt4 book ai didi

ios - 仅使用一个 .xib 文件的纵向和横向替代 iOS 布局

转载 作者:IT王子 更新时间:2023-10-29 07:40:31 24 4
gpt4 key购买 nike

使用 xcode 中的界面生成器和一个 .xib 文件,如何在横向和纵向方向之间旋转时创建替代布局?

查看不同布局的图表 enter image description here

注意。绿色 View /区域将包含 3 个横向流动的项目,纵向纵向流动的这 3 个项目将在绿色 View /区域内垂直流动。

最佳答案

一种方法是在您的 .xib 文件中包含三个 View 。第一个是没有 subview 的 Viewcontroller 的普通 View 。

然后根据需要创建纵向和横向 View 。这三个都必须是根级 View (查看屏幕截图)

enter image description here

在您的 Viewcontroller 中,创建 2 个 IBOutlets,一个用于纵向 View ,一个用于横向 View ,并将它们与界面构建器中的相应 View 连接:

IBOutlet UIView *_portraitView;
IBOutlet UIView *_landscapeView;
UIView *_currentView;

需要第三个 View _currentView 来跟踪当前显示的是这些 View 中的哪一个。然后像这样创建一个新函数:

-(void)setUpViewForOrientation:(UIInterfaceOrientation)orientation
{
[_currentView removeFromSuperview];
if(UIInterfaceOrientationIsLandscape(orientation))
{
[self.view addSubview:_landscapeView];
_currentView = _landscapeView;
}
else
{
[self.view addSubview:_portraitView];
_currentView = _portraitView;
}
}

你需要从两个不同的地方调用这个函数,首先是初始化:

-(void)viewDidLoad
{
[super viewDidLoad];
UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
[self setUpViewForOrientation:interfaceOrientation];
}

其次是方向变化:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[self setUpViewForOrientation:toInterfaceOrientation];
}

希望对你有帮助!

关于ios - 仅使用一个 .xib 文件的纵向和横向替代 iOS 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18595561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com