判断当前UIViewController是否在显示,判断某个view是否在显示

1.判断当前UIViewController是否在显示

假如一个UIView对象当前正在显示,那么它的window属性肯定为非空值。虽然官方文档未说明UIView未显示时window属性的取值,但是经过简单的测试,大部分情况下UIView未显示时,window的值为空,因此依据此判断当前UIViewController是否正在显示。但是访问UIViewController的view属性时,可能会引起view加载(假如此时还未加载),这是不必要的,而且还可能引起无法预期的问题。因此在访问view属性之前,最好先检查isViewLoaded属性来避免上述问题。

封装了一个类方法 为了调用更方便

+(BOOL)isCurrentViewControllerVisible:(UIViewController *)viewController

{

return (viewController.isViewLoaded && viewController.view.window);

}

2.判断某个view是否在显示(在这不考虑view.hide=true的情况)

view.superview != nil  (说明该view已经add到了父视图上了)

或者直接判断 view.window

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view ...
    萧城x阅读 9,339评论 0 0
  • /* UIViewController is a generic controller base class th...
    DanDanC阅读 5,897评论 0 2
  • 7、不使用IB是,下面这样做有什么问题? 6、请说说Layer和View的关系,以及你是如何使用它们的。 1.首先...
    AlanGe阅读 4,410评论 0 1
  • 27、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是...
    烟雨平生花飞舞阅读 3,811评论 0 1
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 7,550评论 2 50

友情链接更多精彩内容