iOS中与Android的RelativeLayout/LinearLayout相当的是什么?

4

如何控制视图的相对位置,特别是我希望我的应用程序在3.5英寸和4英寸的显示屏上无缝运行?


https://dev59.com/h2w05IYBdhLWcg3wuUAL - krsteeve
4个回答

4
从iOS 9开始,您可以使用 UIStackView,它的工作方式与 LinearLayout 非常相似:您添加视图,堆栈视图根据您的大小选项按需安排它们——如果您正在使用 Interface Builder,则可以尝试每个选项以查看哪个选项适合您的需要。您还可以在堆栈视图中设置视图之间的间距,添加一些填充。
警告:在代码中添加堆栈视图子视图时,您应该始终像这样使用 addArrangedSubview():
stackView.addArrangedSubview(someView)

如果您尝试使用普通的addSubview(),它将无法正常工作,因为堆栈视图不知道如何排列它。
至于删除,您需要小心使用stackView.removeArrangedSubview(someView)someView.removeFromSuperview(),否则视图将无法正确删除。
您可能会发现我的UIStackView教程很有用。

2

没有等效或相对的线性布局。UI元素具有自动调整大小掩码,这些掩码定义了它们在父视图调整大小(例如屏幕旋转)时如何移动/拉伸。如果您打算为iOS 6+构建应用程序,则还可以使用布局约束进行定位。如果您无法使用这些工具解决重新定位问题,则应更改代码中UI元素的框架。


1

0

自动布局系统 ≫ 相对布局

UIStackView ≈ 线性布局

在我看来,UIStackView 的设计不够完善

  1. 不能轻松地在子视图/子视图和父视图之间添加额外的约束条件
  2. 它往往会产生约束冲突

    x. 仅适用于 iOS 9+

因此,我编写了 AutoLinearLayoutView,作为 UIStackView 的替代品。

演示截图

从 Github 上获取 AutoLinearLayoutView


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接