如何获取当前self
UIView
的祖先视图,我目前使用self.superview?.superview?.superview?.superview?.superview?.superview?
。
这看起来有点奇怪,除了使用上述语法外,还有其他方法可以获取主要的UIView
吗?否则,如何使用guard
避免此可选链接?
如果您正在从UIView自定义类中调用,可以使用guard
来处理返回可选结果的方法。
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)
addSubview(mySubView)
作为整个屏幕的覆盖层,当删除此子视图时,我希望我的先前视图保持不变(例如表视图滚动位置保持不变)。 - user4911813