究竟啥是超级视图?

Posted

技术标签:

【中文标题】究竟啥是超级视图?【英文标题】:What exactly is a superview?究竟什么是超级视图? 【发布时间】:2017-06-02 11:12:18 【问题描述】:

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

B 是 C 的父视图,还是 A 是 C 的父视图?

这是一个正确的说法吗?超级视图是不是子视图的任何视图?

谢谢。

【问题讨论】:

你没有表现出任何努力。谷歌搜索“Swift what is a SuperView”给了我你问题的确切答案。 我让她参加有关这方面的视频课程,所以我不确定如何证明自己的努力,特别是考虑到我对该问题的搜索没有任何结果。 【参考方案1】:

不,A是B的父视图,B是C的父视图

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

【讨论】:

非常感谢!【参考方案2】:

您可以使用superviewproperty:

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

【讨论】:

以上是关于究竟啥是超级视图?的主要内容,如果未能解决你的问题,请参考以下文章

SlickGrid 啥是数据视图?

熊猫:啥是视图?

强类型视图中的错误消息 - 啥是“字典”?

mysql中,啥是视图,视图的作用是啥

DirectX 11 啥是着色器资源视图

javascript 框架:啥是 UI 绑定和组合视图?