微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 可以自动布局此布局(附图)吗?

为这样的UIView支持纵向和横向:
+-------------------+
  | +---------------+ |
  | |               | |
  | |     Fixed     | |
  | |      size     | |
  | |     Square    | |
  | |               | |
  | +---------------+ |   Protrait
  | +---------------+ |
  | |   Flexible C  | |
  | +---------------+ |
  | +---+       +---+ |
  | | A |       | B | |
  | +---+       +---+ |
  +-------------------+

  +----------------------------------+
  | +---------------+ +------------+ |
  | |               | |  Flexible  | |
  | |    Fixed      | |     C      | |
  | |     size      | +------------+ |
  | |    Square     | +---+    +---+ |
  | |               | | A |    | B | |
  | +---------------+ +---+    +---+ |
  +----------------------------------+
               Horizontal

我是否需要在willRotatetoInterfaceOrientation中手动重新定位子视图?或者Autolayout可以自动为我做吗?

> B是一个始终位于右下方的按钮
> A是相对于B定位的按钮(最好与C的左侧对齐)
> C代表文字,大小灵活
> A和B低于C

解决方法

在这种情况下,您应该能够自动完成大部分布局工作,但在旋转时稍微调整一下.

我建议在另一个UIView中包含视图A,B和C.这样,取决于方向的布局与灵活大小的布局是分开的.它还使编码更简单!

然后你布局方形视图和容器视图有点像这样:

H:|-10-[squareView]
V:|-10-[squareView]
H:[containerView]-10-|
V:[containerView]-10-|
squareView.width == squareView.height

请注意,方形视图始终与superview的左侧和顶部对齐,而容器视图与底部和右侧对齐.对于纵向方向,您可以添加以下约束:

V:[squareView]-10-[containerView]
H:[squareView]-10-|
H:|-10-[containerView]

对于横向方向,您可以反转这些约束:

H:[squareView]-10-[containerView]
V:[squareView]-10-|
V:|-10-[containerView]

这仅适用于整体布局,因此容器视图的子视图的灵活大小由您决定.希望这可以帮助!

原文地址:https://www.jb51.cc/iOS/334471.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐