如何控制视图的相对位置,尤其是我希望我的应用程序能够在3.5英寸显示屏和4英寸显示屏上无缝运行?
答案 0 :(得分:4)
从iOS 9开始,您可以使用UIStackView
,它与LinearLayout
的工作方式非常相似:您可以添加视图,并根据您的大小调整选项根据需要排列堆栈视图 - 如果您使用的是界面您可以在构建器中试验每个选项,以查看哪个选项适合您的需求。您还可以在堆栈视图中设置视图之间的间距,添加一些填充。
警告:在代码中添加堆栈视图子视图时,您应始终使用addArrangedSubview()
,如下所示:
stackView.addArrangedSubview(someView)
如果您尝试使用普通的旧addSubview()
,它将无法正常工作,因为堆栈视图无法安排它。
至于删除,您需要小心使用stackView.removeArrangedSubview(someView)
和 someView.removeFromSuperview()
否则视图将无法正确删除。
您可能会发现我的UIStackView tutorial有用。
答案 1 :(得分:2)
没有等效或相对和线性布局。 UI元素具有自动调整大小的掩码,这些掩码定义了在调整其超级视图大小(例如屏幕旋转)时如何移动/拉伸它们。如果您打算为iOS 6+构建应用程序,也可以使用布局约束进行定位。如果无法使用这些工具解决重新定位问题,则应更改代码中UI元素的框架。
答案 2 :(得分:1)
请查看以下内容:iOS 6 apps - how to deal with iPhone 5 screen size?和How to add iPhone 5 large screen support to iOS apps in Xcode?
但是在大多数情况下,它都是通过自动布局完成的。在Xcode中单击您的项目,然后转到摘要选项卡,为您的应用添加不同的屏幕尺寸启动屏幕。
答案 3 :(得分:0)
自动布局系统»RelativeLayout
UIStackView≈LinearLayout
IMO。 UIStackView设计不合理
经常产生约束冲突
X。仅限iOS 9+
所以我编写了AutoLinearLayoutView,它取代了UIStackView。
从Github结帐AutoLinearLayoutView