推断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来管理页面。
推断View是否显示在界面上的更多相关文章
- 10_Android中通过HttpUrlConnection访问网络,Handler和多线程使用,读取网络html代码并显示在界面上,ScrollView组件的使用
编写如下项目: 2 编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <mani ...
- android 使用系统照相程序照相并存储、显示在界面上
大部分业务可以通过调用系统的相机程序来拍照. 界面如下: <?xml version="1.0" encoding="utf-8"?> <Li ...
- app开发历程————Android程序解析服务器端的JSON格式数据,显示在界面上
上一篇文章写的是服务器端利用Servlet 返回JSON字符串,本文主要是利用android客户端访问服务器端链接,解析JSON格式数据,放到相应的位置上. 首先,android程序的布局文件main ...
- 判断activity是否显示在界面上
boolean result = false; ActivityManager am = (ActivityManager) context .getSystemService(Context.ACT ...
- 仅此一文让你明白ASP.NET MVC 之View的显示(仅此一文系列二)
题外话 一周之前写的<仅此一文让你明白ASP.NET MVC原理>受到了广大学习ASP.NET MVC同学的欢迎,于是下定决心准备把它写成一个系列,以满足更多求知若渴的同学们.蒋金楠老师已 ...
- [Selenium]等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的
等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的 /** * Check if the element present with cu ...
- Unity代码里的Position和界面上的Position
代码里的Position = 世界坐标 this.gameObject.transform.position 界面上的Position = localPosition
- 仅此一文让你明白ASP.NET MVC 之View的显示
有些人要问题,为什么我要学框架?这里我简单说一下,深入理解一个框架,给你带来最直接的好处: 使用框架时,遇到问题可以快速定位,并知道如何解决: 当框架中有些功能用着不爽时,你可以自由扩展,实现你想要的 ...
- 经验之谈—控制器的view的显示
经验之谈—控制器的view的显示 开发中,我们经常需要将一个控制器的view添加到另一个控制器的view上,这种效果是我们期望看到的,但是里边隐藏着一些细节,不注意的话,可能会达不到我们想到的效果. ...
随机推荐
- SPOJ GSS6 Can you answer these queries VI ——Splay
[题目分析] 增加了插入和删除. 直接用Splay维护就好辣! 写了一个晚上,(码力不精),最后发现更新写挂了 [代码] #include <cstdio> #include <cs ...
- BZOJ 1197: [HNOI2006]花仙子的魔法【DP】
Description 相传,在天地初成的远古时代,世界上只有一种叫做“元”的花.接下来,出 现了一位拥有魔法的花仙子,她能给花附加属性,从此,“元”便不断变异,产生了大千世界千奇百怪的各种各样的花. ...
- 【(好题)组合数+Lucas定理+公式递推(lowbit+滚动数组)+打表找规律】2017多校训练七 HDU 6129 Just do it
http://acm.hdu.edu.cn/showproblem.php?pid=6129 [题意] 对于一个长度为n的序列a,我们可以计算b[i]=a1^a2^......^ai,这样得到序列b ...
- Spring-IOC源码解读2.3-BeanDefinition的注册
在DefaultListAbleBeanFactory中通过一个HashMap持有载入的BeanDefinition信息 ,这个HashMap的定义在DefaultListAbleBeanFactor ...
- net3:Calendar控件的使用
原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...
- Codeforces Round #278 (Div. 2) B. Candy Boxes [brute force+constructive algorithms]
哎,最近弱爆了,,,不过这题还是不错滴~~ 要考虑完整各种情况 8795058 2014-11-22 06:52:58 njczy2010 B - Ca ...
- Java运算基础
计算机对负数的运算 = 先取绝对值的原码----> 然后取反,----->+1 这是负数的补码表示 例如 -5 5的原码= 0000,0101 取反 1111,1 ...
- MongoDB学习day10--Mongoose的populate实现关联查询
一.Mongoose populate官方文档 https://mongoosejs.com/docs/populate.html 二.Mongoose populate关联查询 1.定义ref va ...
- Python资料大全
说明:以下文章为转载,有英文原文和中文整理翻译,对原作者和译者的工作表示极大感谢!!! 英文原文:https://github.com/vinta/awesome-python 中文译文:https: ...
- Codeforces Round #178 (Div. 2) B .Shaass and Bookshelf
Shaass has n books. He wants to make a bookshelf for all his books. He wants the bookshelf's dimensi ...