问题很简单 - 我真的很喜欢使用UIStackView来组织UI。但是,我在测试应用程序中看不到UIStackView边界。当不期望UI元素时,我需要花费大量时间来进行调试。在网上搜索,我找不到显示UIStackView边界的方法。
答案 0 :(得分:3)
答案 1 :(得分:1)
我会使用Xcode的“Debug View Hierarchy”支持,正如ferunandu的答案所示。这是最简单的方法,因为UIStackView
专门用而非来呈现任何图形(通过使用CATransformLayer
作为其图层)。
但是有一种方法可以在运行时看到堆栈视图的“边界”。只需添加另一个视图(视图层次结构中的任何位置),并将其约束为与堆栈视图具有相同的框架。您可以在故事板或代码中执行此操作。以下是您可以在代码中执行此操作的方法:
extension UIStackView {
func showBoundary() {
let boundary = UIView()
boundary.layer.borderColor = UIColor(red: 0.8, green: 0.5, blue: 1, alpha: 0.5).CGColor
boundary.layer.borderWidth = 1
boundary.backgroundColor = nil
boundary.frame = self.bounds
boundary.autoresizingMask = [ .FlexibleWidth, .FlexibleHeight ]
addSubview(boundary) // Note: **not** addArrangedSubview!
}
}
然后在堆栈视图上调用stackView.showBoundary()
。