我已经添加了我的子视图
self.view.addSubview(noticeSubView)
Run Code Online (Sandbox Code Playgroud)
在某些时候,我需要在继续执行其他一些操作之前检查该子视图是否存在.我在搜索时发现了以下内容,但不确定它是如何完成的以及如何实现.
BOOL doesContain = [self.view.subviews containsObject:pageShadowView];
Run Code Online (Sandbox Code Playgroud)
我感谢任何帮助,谢谢.
Ken*_*ner 20
您不应该询问视图中是否存在子视图,而是最好询问子视图(在您的情况下是NoticeSubView)是否具有您的视图的父视图.
所以在你的例子中你会稍后检查:
if ( noticeSubView.superview === self.view ) {
...
}
Run Code Online (Sandbox Code Playgroud)
三元组"==="确保superview对象与self.view是同一个对象,而不是尝试在视图上调用isEqual().
人们过去使用的另一种方法是在子视图上设置整数标记,如下所示:
noticeSubView.tag = 4
Run Code Online (Sandbox Code Playgroud)
默认值为零,因此任何非零值都将是唯一的.
然后,您可以通过标记检查superview是否包含特定视图:
if ( self.view?.viewWithTag(4) != nil )
...
}
Run Code Online (Sandbox Code Playgroud)
如果你采用这种方法,你应该为整数值创建一个枚举,这样你就可以更清楚地了解它.
注意:有一个"?" 后self.view因为视图控制器将不会有一个视图定义,直到后viewDidLoad的"?" 确保在self.view返回时不会发生呼叫.None
| 归档时间: |
|
| 查看次数: |
4691 次 |
| 最近记录: |