[英]How to correctly use aspect ratio in swift xcode storyboard?
总体思路...
UIView
sAlignment: Fill
, Distribution: Fill Equally
Equally and Spacing: 0
3:2.5
UIView
- 我称之为GridView
>= 12
= 12
在所有 4 个边上,但给这些约束Priority: High (750)
...这将导致自动布局将堆栈视图“拉”到边缘,但如果需要允许它更窄这将为您提供 6 个图块,这些图块将根据设备大小保持其纵横比,并且如果需要,它将使垂直堆栈视图居中:
下一步是在每个“平铺”视图中嵌入一个“圆角边框”视图,将其限制在所有 4 个边上的 8 点(或多或少以获得所需的“间距”):
这是 iPhone 12 和 iPhone 6s 上的结果:
如您所见,标签与横幅和网格视图之间的垂直空间较小,堆栈视图两侧的水平空间稍大。
这是我用于此的 Storyboard 源和 class 文件的链接,因此您可以尝试并检查元素。 我用的刚好够演示。 您可能想要制作一个自定义“平铺”视图 class,其中包含圆角边框视图和 label:
https://gist.github.com/DonMag/8a0b2d85bbbb4262e43d73e745826ee5
如果你想使用故事板来处理这个问题,这就是所有的限制游戏。
有多种方法可以实现此 UI。 您可以使用 UICollectionView 并使用 UICollectionViewCells 在每列中显示 2 个单元格来管理数据,或者您可以使用 UIStackView 轻松管理您的 UI。
如果你想要方形,那么你必须使用 UIScrollView 因为 UI 可以超过屏幕高度。 如果没有,只需将您的视图放入 UIStackView 并让它自己处理一些 UI 约束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.