zoukankan      html  css  js  c++  java
  • 推断View是否显示在界面上

    我们都知道ViewController有viewWillAppear和viewDidAppear等关于页面生命周期的方法,用来对视图做一些管理,比方页面出现时怎么样,页面消失时怎么样。。

    可是对于View。有没有相似的方法能够推断是否view出现了,view消失或者被遮挡了呢?


    先介绍一下场景吧,朋友的一个项目,有个界面是直接做了个View。然后add到某个ViewController上去了(层级比較深。不方便在ViewController里操作这个view)。后来需求变动,须要这个View中做一些推断,该界面被其它vc遮挡后,再返回来时须要刷新这个view。
    正常的做法是通过vc来控制这个view。可是这次因为时间紧迫。项目也不方便修改,于是须要这个view自己实现对应处理。

    上解决方式:
    对于view来说,有两个关于自身页面状态的方法

    -(void)willMoveToWindow:(UIWindow *)newWindow
    - (void)willMoveToSuperview:(UIView *)newSuperview

    怎样利用这些方法呢,经过測试

    -(void)willMoveToWindow:(UIWindow *)newWindow

    这方法在页面被加入到视图时会调用,且newWindow是存在的。
    当有新的vc遮挡时。这方法也会被调用(连续调用了两次,原因有待查明),可是newWindow是nil。利用这一点。能够简单推断页面的状态。

    最后要重申一点,这样的方法并不是开发的正道,正确做法仍然是通过VC来管理页面。

  • 相关阅读:
    centos6.8安装DB2 10.5
    linux yum配置本地iso镜像
    DB2的空间数据库管理复杂配置
    高性能计算linux集群常用配置
    centos 6.8操作系统安装arcgis server 10.4
    【转】用python实现简单的文本情感分析
    Python3制作中文词云图
    MongoDB Replica Set搭建集群
    pycharm编写spark程序,导入pyspark包
    Mysql变量声明与使用
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7243093.html
Copyright © 2011-2022 走看看