iOS - 在横向显示一个很长的垂直堆栈视图

Posted

技术标签:

【中文标题】iOS - 在横向显示一个很长的垂直堆栈视图【英文标题】:iOS - display a very long vertical stack view in landscape 【发布时间】:2016-01-06 02:11:55 【问题描述】:

我在尝试以横向模式显示很长的堆栈视图时遇到问题。 我已经阅读并观看了一些关于自动布局和约束的教程,但在这种情况下我没有找到任何可以帮助我的东西:

我正在使用堆栈视图来构建我的 iphone 应用程序的视图;在一个视图中,我有一个非常长的垂直堆栈视图,由其他水平堆栈视图制成。 我想找到一种在横向模式下显示整个垂直堆栈的方法,也许允许用户滑动/滚动页面并查看堆栈的其余部分,或者可能将堆栈“拆分”很多部分并将它们并排放置水平方向。

为了更好的解释我做了一张图片

欢迎提出任何建议!

【问题讨论】:

如果你想滑动/滚动你应该使用滚动视图吗? stackview 只是为了方便约束,如果你想要一个带有动态单元格的水平滚动,你可能需要collectionview 我不认为滚动视图是我需要的,因为每个水平堆栈视图中有几个不同的东西..(例如标签、按钮、开关、图像等) 【参考方案1】:

当设备将方向更改为横向时,您可以更改 axisstackview

@property (weak, nonatomic) IBOutlet UIStackView *stackView;

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 
switch ([[UIDevice currentDevice] orientation]) 
    case UIDeviceOrientationLandscapeLeft:
        _stackView.axis = UILayoutConstraintAxisHorizontal;
        break;
    case UIDeviceOrientationLandscapeRight:
        _stackView.axis = UILayoutConstraintAxisHorizontal;
        break;
    default:
        _stackView.axis = UILayoutConstraintAxisVertical;
        break;
    

【讨论】:

以上是关于iOS - 在横向显示一个很长的垂直堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章

在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS

如何在另一个视图 iOS 上垂直翻转视图?

UIButtons 在横向和较小的设备上被挤压

如何使用自动布局在纵向模式下垂直堆叠视图并在横向模式下水平堆叠视图?

iOS - 在堆栈视图中拉伸的图像

水平堆栈视图中按钮的宽度 - iOS - 故事板