繁体   English   中英

UICollectionView在旋转时更改流向

[英]UICollectionView change flow direction on rotation

Compact Height

Compact Width

嘿,我想获得您在图片中看到的内容:在“紧凑高度”模式(横向iphone)中,红色和蓝色视图都必须垂直放置所有屏幕,而水平屏幕则占据一半。 在紧凑宽度模式(纵向iphone)下,它们必须水平放置所有屏幕,垂直放置一半屏幕。 在两种模式下,视图之间的空间应相同。

我曾经以为我必须使用大小类和自动布局约束,但是我尝试的所有尝试都失败了。

也许我必须使用UICollectionView并根据方向更改流向(如果可能的话)?

集合视图可能是过大的,因为您不希望滚动,这就是集合视图的全部要点–进行大小调整以停止它时,您已经完成了设置非滚动的所有必要工作布局。

这对于IB中的大小类是可能的。 首先,一般来说,在IB左侧的文档大纲中命名视图可能会很有帮助。 您还将希望使用此轮廓,而不是尝试抓住微小的约束H线。

  1. 设置所有约束,除了1)将OrangeView和BlueView彼此链接的约束,2)将OrangeView链接到顶部和左侧(引导)的约束以及3)将BlueView链接到底部和右侧(跟踪)的约束。
  2. 在时髦的盒子系统中,将底部的尺寸类别设置更改为w-Compact和h-Any。 现在我们正在设计紧凑的宽度,因此视图可以彼此重叠。
  3. 为BlueView.bottom到OrangeView.Top的垂直空间创建约束。 还为OrangeView创建约束以使superview.lead(或ledaing,margin)和BlueView约束至superview.trailing.margin。 如果您选择这些约束中的任何一个并查看右侧的大小检查器(标尺),则应该看到未选中“已安装”复选框,在该复选框的下方是w-Compact h-Any和另一个已安装的复选框,该复选框已选中。
  4. 现在,在仅选择约束条件以查看发生什么情况的同时,将底部的sizeClass选择器更改为w-Regular h-Any。 请注意,在左侧的“文档大纲”中,该字段应显示为灰色。
  5. 现在,我们正在为常规设计,并排设计。 添加约束,以将水平空间的视图BlueView.trailing链接到OrangeView.leading。 还要将OrangeView.top链接到superview.top或与BlueView.top对齐的顶部,底部则相同。 您可以先手动编辑框架。 如果不是,IB将自动填写错误的值,因此在创建它们后对其进行编辑,并确认它们为w-Regular和h-Any。 在选择ViewController的情况下,选择“更新框架”,然后视图应对齐到大小类的预期形状。

让我们知道这是否对您有用或不清楚。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM