如何获得最外层的父UIView容器?

时间:2015-12-17 07:23:50

标签: ios swift uiview guard superview

如何获取当前self UIView的格兰德父视图,目前我正在使用self.superview?.superview?.superview?.superview?.superview?.superview?

它看起来有点奇怪,而不是使用上面的语法是他们的任何其他方式来获得主UIView否则如何使用guard阻止此可选链接?

1 个答案:

答案 0 :(得分:3)

您可以将guard与返回可选的方法一起使用,(我假设您是从UIView自定义类调用此方法)。

private func outerMostParent(view:UIView)-> UIView? {
    guard let parent  = superview?.superview?.superview?.superview?.superview?.superview
           else{
        return nil
    }
    return parent
}

然后你可以做

self.outerMostParent(self)?.addSubview(yourSubview)