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

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

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

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

欢迎提出任何建议!

【问题讨论】:

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

标签: ios autolayout uistackview


【解决方案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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2017-10-21
    相关资源
    最近更新 更多