TableView头视图高度问题

www.cnblogs.com/ihojin/p/tableHeaderView-resizeheight.html

有这么一种需求,在列表顶端显示一些别样的数据,而这个别样的数据则需要通过一个别样的 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];

时间: 2024-12-14 18:04:31

TableView头视图高度问题的相关文章

iOS:使头视图随表视图滚动

使tableVIew的头视图使表示图滚动,需要使用设置tableView的分组样式 _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped]; 如果分组为一组,直接自定义头视图,然后设置为tableView的headerView, 如果为多组,某些组需要头视图,某些组不需要,需要头视图的正常设置头视图高度,不需要的返回0.01,如果返回nil,会被系统无视,然后返

UI tableView 的头视图 & "小广告"

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64) style:UITableViewStylePlain]; [self.view addSubview:self.tableView]; [_tableView release]; self.tableView.dataSource =

点击tableview的头视图按钮来达到收放tableview的列表

// //  ViewController.m //  XIBForiPad // //  Created by Lu_Ca on 15/8/12. //  Copyright (c) 2015年 Lu_Ca. All rights reserved. // // //点击tableview的头视图按钮来达到收放tableview的列表 // #import "ViewController.h" #import "XibForCell.h" #import &quo

IOS TableView的Cell高度自适应,UILabel自动换行适应

原文链接 :http://blog.csdn.net/swingpyzf/article/details/18093959 需求: 1.表格里的UILable要求自动换行 2.创建的tableViewCell的高度会自动适应内容的高度 一.用xcode构建项目,创建一个有tableView的视图,用纯代码的形式实现: 1.创建一个UIViewController类,定义一个UITableView,实现TableView的委托和数据源协议 [objc] view plaincopyprint? /

表的头视图下拉放大效果

ViewController.h @interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> { UIImageView *_imageView; } ViewController.m <p>#import "ViewController.h"</p> @interface ViewController () @end @impleme

表视图展开收起 头视图滑动到顶部不动 直到该组单元格全部推上去

类似qq的分组  头视图展开后推到屏幕顶端不动直到该组的单元格全部推上去 实现方法 1.在下面创建表视图的方法里style 设置成UITableViewStylePlain [[ UITableView alloc] initWithFrame:CGRectMake(0, 100, kScreenWide, kScreenHeight - 164) style:UITableViewStylePlain]; 2.表视图的代理方法 要添加设置组的代理方法 - (NSInteger)numberOf

ios tableView的header高度不对

tableView的header高度不对,一般都是header是从xib加载出来的 第一步: 新建xib的时候选择的是View,当选择 Size 为 Freeform 时,view的约束就变成这样了,如下图 改成这样就好了,如下图 第二步: 如果上述还不能的话,就在 viewWillAppear 里,调用一下tableView.reloadData override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(anim

&quot;UICollectionView实现带头视图和组的头视图同时存在&quot;实现

实现效果如下: 以前做这效果的界面,总是实现的是section的头视图,因为我一直觉得collectionView是不像UITableView那样有tableHeaderView的,所以每次实现只能是判断indexpath.section为0的时候,组合一下视图做第一个section的头视图. 今天看别人写的Swift项目,看到人家代码的实现这效果的简便,我实在是不敢相信这么容易,于是自己赶紧用OC写了个简单的demo,发现还真是能实现呢......好开心.... 实现的源码如下,注释的很清楚啦

collectionView怎么添加头视图

我们要使用CollectionView里面的头视图需要先注册头视图 UICollectionReusableView或者 继承UICollectionReusableView的子类,kind类型为UICollectionElementKindSectionHeader,并且需要带一个标识符,我们定义个static 的静态字符串就行,如下所示: [collectionView registerClass:[UICollectionReusableViewclass ]   forSupplemen