【发布时间】:2019-03-31 13:17:56
【问题描述】:
我想创建一个包含 3 个元素的垂直堆栈视图。 我只想在第二个和最后一个元素之间留出更多空间。所以我考虑添加到最后一个元素:
mylastelement.layoutMargins = UIEdgeInsets(top:30, left:0,bottom:0, right:0)
但是 layoutmargins 没有应用到我的 stackview 中。有什么简单的方法可以实现(我想避免修改最后一个元素的内部高度)。
编辑:我只是尝试通过这样做来增加其框架内的第二个元素高度(+50):
my2ndElementLabel.sizeToFit()
my2ndElementLabel.frame = CGRect(x:my2ndElementLabel.frame.origin.x,y:lmy2ndElementLabel.frame.origin.y,
width:my2ndElementLabel.frame.width, height:my2ndElementLabel.frame.height + 50)
但它没有效果。
EDIT2:我尝试向我的 UIStackView 添加一个随机视图,但该视图被忽略了!在理解 UIKit 的工作原理时可能遗漏了一些东西?...:
let v = UIView(frame:CGRect(x:0,y:0,width:100,height:400))
v.backgroundColor = .red
myStackView.addArrangedSubview(v)
//...
【问题讨论】:
-
您是否尝试过在顶部锚点上使用自动布局约束?
-
你到底是什么意思?实际上我可以限制每个视图从上到下,但我想使用堆栈视图来训练使用它。
-
奇怪的是,没有办法只为 Stackview 的一个元素添加边距。看起来改变视图的框架没有效果
标签: swift uistackview layoutmargins