什么是超级视图?

时间:2017-06-02 11:12:19

标签: ios uiview

如果我有三个UIViews,A,B和C. C是B的子视图.B是A的子视图。

B是C的超级视图,还是C的超级视图?

这是正确的陈述吗? superview是不是子视图的任何视图吗?

感谢。

2 个答案:

答案 0 :(得分:0)

不,A是B的超级视图,B是C的超级视图

viewA.addSubview(viewB)    
viewB.addSubview(viewC)

答案 1 :(得分:0)

您可以使用superview属性找到它:

class MyView: UIView {
    var me = ""
    func printMe() {
        print("I am \(me)")
    }

    init(me: String) {
        self.me = me
        super.init(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
let viewA = MyView(me: "A")
let viewB = MyView(me: "B")
let viewC = MyView(me: "C")

viewA.addSubview(viewB)
viewB.addSubview(viewC)

let superviewOfB = viewB.superview as! MyView
let superviewOfC = viewC.superview as! MyView

superviewOfB.printMe()
superviewOfC.printMe()

打印:

  

我是A

     

我是B