如何获取最外层的 parent UIView 容器?

How to get outermost parent UIView container?

如何获得我当前 self UIView 的大 parent 视图,目前我正在使用 self.superview?.superview?.superview?.superview?.superview?.superview?

它看起来有点奇怪,而不是使用上面的语法是他们获得 main UIView 的任何其他方式,否则我怎么能阻止这个可选的链接 guard?

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

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)