【发布时间】:2017-03-19 18:04:55
【问题描述】:
我在 IB 中创建了一个 UIStackView,它的分布设置为 Fill Equally。我正在寻找每个子视图的框架,但以下代码总是返回 (0, 0, 0, 0)。
class ViewController: UIViewController {
@IBOutlet weak var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
let pView = UIView()
let sView = UIView()
pView.backgroundColor = UIColor.red
sView.backgroundColor = UIColor.orange
stackView.addArrangedSubview(pView)
stackView.addArrangedSubview(sView)
}
override func viewDidLayoutSubviews() {
print(stackView.arrangedSubviews[0].frame)
print(stackView.arrangedSubviews[1].frame)
}
}
我认为设置为平均填充的堆栈视图会自动设置计算它。
任何帮助将不胜感激。
【问题讨论】:
-
是的。布局很好。我想要隐藏和显示具有 3 个可能选项的每个子视图的选项。仅显示 pView,仅显示 sView,然后显示两个视图。我需要获取子视图框架/边界的原因是我想覆盖一个绘制视图以在每个视图中的图像顶部绘制。如果在每个视图之间切换时只显示一个视图,它会正常工作,但如果两个子视图都显示,它们的框架大小会发生变化,我需要调整绘图视图框架。我希望上面的代码能给我框架,但它没有。
-
你检查我的答案了吗?您还可以为 stackview 子视图的 hidden 属性设置动画。
标签: ios swift subview uistackview