Swift:addSubview 放在前一个视图上
Posted
技术标签:
【中文标题】Swift:addSubview 放在前一个视图上【英文标题】:Swift: addSubview is placed on previous view 【发布时间】:2018-06-26 11:15:24 【问题描述】:我使用此代码向父级添加两个视图:
let view0 = StarClass.createMyClassView()
parent.addSubview(view0)
let view1 = StarClass.createMyClassView()
parent.addSubview(view1)
这段代码工作正常,但view1
没有放在view0
的底部
view1
放在view0
我想在view0
底部添加view1
我该怎么做?
【问题讨论】:
使用自动布局。 @AkshaysinghYaduvanshi 我想以编程方式添加视图 parent.insertSubview... 你是说front&back还是top&bottom? Add a subview programatically at the bottom of other view的可能重复 【参考方案1】:您可以通过使用自动布局来实现,请参见下面的示例。
let view0 = StarClass.createMyClassView()
view0.translatesAutoresizingMaskIntoConstraints = false // Enables autolayout
parent.addSubview(view0)
let view1 = StarClass.createMyClassView()
view1.translatesAutoresizingMaskIntoConstraints = false
parent.addSubview(view1)
NSLayoutConstraint.activate([
view0.leftAnchor.constraint(equalTo: parent.leftAnchor), // Set layout for view0
view0.rightAnchor.constraint(equalTo: parent.rightAnchor),
view0.topAnchor.constraint(equalTo: parent.topAnchor),
view0.heightAnchor.constraint(equalToConstant: 100),
view1.leftAnchor.constraint(equalTo: parent.leftAnchor), // Set layout for view1
view1.rightAnchor.constraint(equalTo: parent.rightAnchor),
view1.topAnchor.constraint(equalTo: view0.bottomAnchor), // below view0
view1.heightAnchor.constraint(equalToConstant: 100)
])
【讨论】:
谢谢,对我来说最好的解决方案 我还有一个问题。我如何使用 foreach ?示例:对于 1...20 让 view = StarClass.createMyClassView() view.translatesAutoresizingMaskIntoConstraints = false parent.addSubview(view) 。现在,如何使用 NSLayoutConstraint ?! 您可以在变量中跟踪先前添加的视图,并在循环中更新它。然后使用前一个视图中的锚点设置循环中的布局。以上是关于Swift:addSubview 放在前一个视图上的主要内容,如果未能解决你的问题,请参考以下文章
UIWindow 和 UIView addSubview 问题