swift 列出UIViewcontroller中的所有子视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 列出UIViewcontroller中的所有子视图相关的知识,希望对你有一定的参考价值。

extension UIView {

    private var viewInfo: String {
        return "\(classForCoder), frame: \(frame))"
    }

    private func subviews(parentView: UIView, level: Int = 0, printSubviews: Bool = false) -> [UIView] {
        var result = [UIView]()
        if level == 0 && printSubviews {
            result.append(parentView)
            print("\(parentView.viewInfo)")
        }

        for subview in parentView.subviews {
            if printSubviews {
                print("\(String(repeating: "-", count: level))\(subview.viewInfo)")
            }
            result.append(subview)

            if subview.subviews.count != 0 {
                result += subviews(parentView: subview, level: level+1, printSubviews: printSubviews)
            }
        }
        return result
    }

    var allSubviews: [UIView] {
        return subviews(parentView: self)
    }

    func printSubviews() {
        _ = subviews(parentView: self, printSubviews: true)
    }

}

//USAGE
 view.printSubviews()
 print("\(view.allSubviews.count)")

以上是关于swift 列出UIViewcontroller中的所有子视图的主要内容,如果未能解决你的问题,请参考以下文章

如何列出iOS中uiviewcontroller中的所有子视图?

在 Swift 中动态创建 uiviewcontroller

Swift - 在 UIViewController 中防止返回事件

在 Swift 2.3 中导航到 UIViewController

Swift - 从 NavigationController 中的 UIViewController 转到 TabBarController 中的 UIViewController

Swift 中的 UIViewcontroller 实例 [重复]