UITableView:改变 TableHeaderView 的高度
参考:http://stackoverflow.com/a/526825
有这么一种需求,在列表顶端显示一些别样的数据,而这个别样的数据则需要通过一个别样的 View 来展现,它便是 UITableView 的 tableHeaderView。
倘若 tableHeaderView 里的内容很固定,高度不要随着内容的不同而改变,这样还好。
如果,高度是需要动态改变的,某些人(比如我)可能就会遇到这样一个难题:
已经给 view 中的每个子 view 设置过值了,高度算过了,frame 也重新设置过了,可 tableHeaderView 的高度却还是之前的高度,没有变化。内容变多,则会有一部分看不见了;内容变少,则有一部分空白,放在那里实在不好看。
怎么办??
view 作为 tableView 的 tableHeaderView,单纯的改变 view 的 frame 是无济于事的,tableView 不会大度到时刻适应它的高度(以后 Apple 会不会改变就不知道了),所以,如何告诉tableView 它的 tableHeaderView 已经改变了?很简单,就一句话(关键最后一句):
[webView sizeToFit];
CGRect newFrame = headerView.frame;
newFrame.size.height = newFrame.size.height + webView.frame.size.height;
headerView.frame = newFrame;
[self.tableView setTableHeaderView:headerView];
这样以后,效果就出来了。不过这种过度显得有些生硬,能不能加一点点动画,让它变得顺眼一些呢?试试下面的代码:
[self.tableView beginUpdates];
[self.tableView setTableHeaderView:headerView];
[self.tableView endUpdates];
UITableView:改变 TableHeaderView 的高度的更多相关文章
- 第19月第20天 UITableView:改变 TableHeaderView 的高度 获取目录大小
1.UITableView:改变 TableHeaderView 的高度 CGRect newFrame = headerView.frame; newFrame.size.height = newF ...
- Swift4 - 动态计算UITableView中tableHeaderView的高度 - 获取子控件高度和宽度
核心 : /// 获取 子控件高度 func sizeHeaderToFit(view:UIView) { view.setNeedsLayout() view.layoutIfNeeded() le ...
- iOS开发--改变tableHeaderView的高度
1.先获取tableHeaderView 2.设置它的frame 3.将该view设置回tableview UIView *view=tableView. tableHeaderView; view. ...
- 动态改变tableHeaderView的显示隐藏及高度
改变tableHeaderView的高度: UIView *headerView = _tableView.tableHeaderView; headerView.height = 10; 当设置高度 ...
- 【iOS知识学习】_iOS动态改变TableView Cell高度
在做tableView的时候,我们有时候须要依据cell的高度动态来调整.近期在网上看到一段代码不错.跟大家Share一下. 在 -(UITableViewCell *)tableView:(UITa ...
- tableview中用动画效果改变cell的高度
我们要的效果大概就是如下效果: 当我们选择一个cell的时候,我们就要改变它的高度,并且以动画的形式. 我们该如何实现这个效果呢?我们主要需要使用以下这两个方法: - (CGFloat)tableVi ...
- swift 自动布局设置 tableview 的 tableHeaderView 的高度
class headerView: UIView { var whiteView = UIView().then { $.backgroundColor = UIColor.red } overrid ...
- 动态替换iframe的src及动态改变iframe的高度
实现效果:点击左侧右侧内容变化,但左侧保持不变(如折叠等) 动态替换iframe的src <iframe width="100%" frameBorder="0&q ...
- iOS UITableView设置tableHeaderView时发生约束错误 UIView-Encapsulated-Layout-Height UIView-Encapsulated-Layout-Width
在将UITableView的tableHeaderView设置为我自己创建的View的时候, 当我为这个自定义View添加约束之后启动调试, 然后符号断点UIViewAlertForUnsatisfi ...
随机推荐
- Pythonic版二分查找
[本文出自天外归云的博客园] 前提:升序数组,待查元素在数组中. 二分查找:就是一个递归函数c.待查元素a,当前数组中位数b,如果b=a则返回b的索引,b>a则在b左侧的子数组中调用函数c,否则 ...
- (转载)跟我一起学习VIM - The Life Changing Editor
原文: http://ju.outofmemory.cn/entry/79671 前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程.虽然准备有限,但分享过程中大家大多带着一种 ...
- Java多线程中的Runnable和Thread
摘要: 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的r ...
- CSS网页布局中易犯的30个小错误
即使是CSS高手,也难免在书写CSS代码的时候出一些小错误,或者说,任何一种代码都是如此.小错误却往往造成大问题,浪费很多无辜的时间来调试和排错.查看下面这份CSS网页布局中易犯的10个小错误,努力的 ...
- c字符输出
#include<stdio.h> int main() { char c1,c2; c1 = ; c2 = ; printf("c1 = %c,c2 = %c\n", ...
- C#如何调用R
1. 现在R中安装rscproxy库 > install.packages(rscproxy) > library(rscproxy) 2. 到这个网站http://rcom.univ ...
- junit import org.junit.Test 报错
由于用的是父-子项目 在自项目中各种改都不行,还是报错,而且子项目中明明已经导入了还在报错,后面发现是父项目中的scope是test 注释掉就好了
- JDK1.8 重识HashMap
摘要 JDK1.8相较于1.7对HashMap做了很大的优化,比如加入了新数据结构红黑树.Hash算法的优化和扩容的优化. 本篇结合这些区别,探索HashMap的结构实现和功能原理. 存储结构-字段 ...
- 【Java/Spring】Spring的配置问题,IDEA报错“No mapping found for HTTP request with URI […] in DispatcherServlet”
从SVN上拷贝下JavaWeb项目,Spring框架的配置文件需要修改.部署好Tomcat后,启动服务,可以进入Web项目主页,但是访问其他URL时直接跳转到404,IDEA报错“No mapping ...
- 【Unity Shader】七、透明的Transparent Shader
学习资料: http://www.sikiedu.com/course/37/task/459/show# 本例的代码基于上一篇文章,添加透明效果.为了便于区分新增的部分,该部分使用和红色加粗字体. ...