博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios tableheaderview layoutifneeded使用
阅读量:5863 次
发布时间:2019-06-19

本文共 921 字,大约阅读时间需要 3 分钟。

这个方法和另一个方法配对的,setNeedLayout和layoutIfNeed,还有一个关联的方法是layoutSubviews,在我们没有任何干预的情况下,一个view的fram或bounds发生变化时,系统会设置一个flag给这个view,当下一个渲染时机到来时系统会重新按新的布局来渲染视图。setNeedLayout就是我们主动为这个视图设置一个flag,告诉系统这个视图再下一个时机到来时要重新渲染,而layoutIfNeed则是告诉系统,如果设置了flag那么不用等待时机到来了,直接渲染吧。而layoutSubviews这个方法是系统调用的,我们不需要主动调用,我们只需要调用layoutIfNeed就可以了,让系统判断是否在当前时机下立即渲染。

另同时用上一套的场景举个例,当想知道tableView reloadData后的contentSize的话可以在reloadData后用这两个方法,然后就可以直接提取contentSize了。

[UIView animateWithDuration:0.2 animations:^(void){

                    tableHeaderView.height -= 60;

                    [tableHeaderView layoutIfNeeded];

                    grayView.frame = CGRectMake(0, monthKlineChartPanelView.top+monthKlineChartPanelView.height, SCREEN_WIDTH, 10);

 

                    self.tableHeaderView = tableHeaderView;

                    [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithFloat:105] forKey:UI_STOCK_INFOPANEL_MORE];

                    [[NSUserDefaults standardUserDefaults]synchronize];

                }];

 

转载于:https://www.cnblogs.com/zhangxiaozhe/p/6478134.html

你可能感兴趣的文章
Action.c(58): Error -27796: Failed to connect to server "hostname"
查看>>
webpack 入门指南
查看>>
weblogicjsp编译:查看编译后的java中间代码
查看>>
Spring Boot 入门
查看>>
[普通平衡树splay]【学习笔记】
查看>>
聊聊并发(七)——Java中的阻塞队列
查看>>
php 读取文件
查看>>
python的dir、help、str用法
查看>>
【Infobright】infobright数据导入导出测试
查看>>
编译器处理警告、错误 #pragma GCC diagnostic ignored "-Wunused"
查看>>
Qtablevies获取内容
查看>>
jdk安装配置具体分析
查看>>
[转]ASP.NET Core 中间件详解及项目实战
查看>>
eclipse编辑窗口不见了(打开左边的java、xml文件,中间不会显示代码)
查看>>
iOS动画篇:核心动画
查看>>
第一篇:《UNIX 环境高级编程》编译环境的搭建
查看>>
人脸关键点检测算法
查看>>
事物与数据库锁的关系(锁只是数据库事物一方面)
查看>>
《Qt数据类型》--QByteArray,QString,int,hex之间的转化
查看>>
vue知识点总结
查看>>