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

如何获得我当前自我UIView的宏观父母视图,目前我正在使用self.superview?.superview?.superview?.superview?.superview?.superview?

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

解决方法

你可以使用一个返回可选方法的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)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...