Tag: uikit superview

UIView超级属性是弱还是强?

UIView标题指出,superview属性是强大的 open var superview: UIView? { get } 但它的行为就像一个弱的属性,即如果我创buildview1和view2,然后调用view1.addSubview(view2),然后保存强ref只view2(不view1),即使view2引用它view1将被定义通过其superview财产。 所以,我想知道它是如何实现的。 编辑 :例如,这个代码打印“deinit”(ViewController实例显示在屏幕上),这意味着view1被定义,尽pipeview2应该通过superview属性强有力地持有它。 class View: UIView { deinit { print("deinit") } } class ViewController: UIViewController { var view2 = UIView() override func viewDidLoad() { super.viewDidLoad() let view1 = View() view1.addSubview(view2) } }