4

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

4

4 回答 4

4

从 iOS 9 开始,您可以使用UIStackView,其工作方式非常类似于LinearLayout:您添加视图,堆栈视图根据您的大小调整选项根据需要排列它们 – 如果您使用的是 Interface Builder,您可以尝试每个选项以查看哪个选项适合您的需求。您还可以在堆栈视图中设置视图之间的间距,添加一些填充。

警告:在代码中添加堆栈视图子视图时,您应该始终addArrangedSubview()像这样使用:

stackView.addArrangedSubview(someView)

如果您尝试使用普通旧的addSubview(),它将无法正常工作,因为堆栈视图不知道如何安排它。

至于删除,你需要小心使用stackView.removeArrangedSubview(someView) someView.removeFromSuperview()否则视图将无法正确删除。

你可能会发现我的UIStackView 教程很有用。

于 2015-12-13T12:04:39.160 回答
2

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

于 2013-09-04T19:45:39.573 回答
1

看看这个:iOS 6 应用程序 - 如何处理 iPhone 5 的屏幕尺寸?以及如何在 Xcode 中为 iOS 应用程序添加 iPhone 5 大屏幕支持?

但它在很大程度上是通过自动布局为您完成的。在 Xcode 中单击您的项目,然后转到“摘要”选项卡,为您的应用添加不同屏幕尺寸的启动屏幕。

于 2013-09-04T19:45:12.250 回答
0

自动布局系统 ≫ 相对布局

UIStackView ≈ 线性布局

国际海事组织。UIStackView 设计得不好

  1. 不能轻易在 subviews/subview 和 superview 之间添加额外的约束
  2. 经常会产生约束冲突

    X。仅限 iOS 9+

所以我写了 AutoLinearLayoutView,一个 UIStackView 的替代品。

演示截图

从 Github AutoLinearLayoutView结帐

于 2016-04-01T15:25:04.417 回答