可视化UIStackView?

时间:2016-05-18 23:49:05

标签: ios uistackview

问题很简单 - 我真的很喜欢使用UIStackView来组织UI。但是,我在测试应用程序中看不到UIStackView边界。当不期望UI元素时,我需要花费大量时间来进行调试。在网上搜索,我找不到显示UIStackView边界的方法。

2 个答案:

答案 0 :(得分:3)

您是否尝试点击调试栏中的调试视图层次结构按钮?

enter image description here

请参阅此(来自Apple):Specialized Debugging Workflows

答案 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()