判断View是否正在显示的总结
2016-02-05 00:00
513 查看
摘要: 判断uiview是否正在显示,个别地方用于tableview和collectionView,给各位iOSer一个启发吧
有时候在做一些工程时候为了视觉美化需要将一些view隐藏显示,还有的情况需要看是不是正在显示,这篇博文就简单总结一下怎么处理
然后在添加到superView时候,isShow = YES
从父视图移除时候,isShow = NO
if(View isKindOfCless:[OneViewObject class]){
//...
假如一个UIView对象当前正在显示,那么它的window属性肯定为非空值。虽然官方文档未说明UIView未显示时window属性的取值, 但是经过简单的测试,大部分情况下UIView未显示时,window的值为空,因此依据此判断当前UIViewController是否正在显示。但是 访问UIViewController的view属性时,可能会引起view加载(假如此时还未加载),这是不必要的,而且还可能引起无法预期的问题。因 此在访问view属性之前,最好先检查isViewLoaded属性来避免上述问题。
- (BOOL)isVisible {
return (self.isViewLoaded && self.view.window);
}
同时引用另外一位博友的处理方式
贴一段代码吧:
CGRect rect = [_testButton convertRect:_testButton.frame toView:self.view];
if (CGRectIntersectsRect(self.view.frame, rect)) {
NSLog(@"true");
}else{
NSLog(@"false");
}
有时候在做一些工程时候为了视觉美化需要将一些view隐藏显示,还有的情况需要看是不是正在显示,这篇博文就简单总结一下怎么处理
最简单易行的是自己动手做一个标志
BOOL isShow;然后在添加到superView时候,isShow = YES
从父视图移除时候,isShow = NO
遍历所有子视图进行操作,这样可以同时对多个子视图进行操做,移除视图释放内存等
for(UIView * view in [self.view subviews]){if(View isKindOfCless:[OneViewObject class]){
//...
ps :IOS 判断当前UIViewController 是否正在显示
某些情况下,需判断当前ViewController是否正在显示,比如后台网络请求报错,我们可能只希望在发起请求的页面弹窗提示用户,当用户已经跳转到其他界面,不做弹窗,减少对用户的干扰。假如一个UIView对象当前正在显示,那么它的window属性肯定为非空值。虽然官方文档未说明UIView未显示时window属性的取值, 但是经过简单的测试,大部分情况下UIView未显示时,window的值为空,因此依据此判断当前UIViewController是否正在显示。但是 访问UIViewController的view属性时,可能会引起view加载(假如此时还未加载),这是不必要的,而且还可能引起无法预期的问题。因 此在访问view属性之前,最好先检查isViewLoaded属性来避免上述问题。
- (BOOL)isVisible {
return (self.isViewLoaded && self.view.window);
}
同时引用另外一位博友的处理方式
iOS判断UIView是否显示在屏幕上
如何判断一个view 是否在另外一个view 范围内
其原理是将两个view的坐标convert 到相对于同一个view的坐标,再对比贴一段代码吧:
CGRect rect = [_testButton convertRect:_testButton.frame toView:self.view];
if (CGRectIntersectsRect(self.view.frame, rect)) {
NSLog(@"true");
}else{
NSLog(@"false");
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 让IE ff Opera同时支持Alpha透明的方法
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- iOS推送的那些事
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法