##UITableViewHeaderFooterView 到底重用了没有
在做问答模块的时候问题使用的UITableViewHeaderFooterView,答案使用的UITableViewCell,当我执行 tableview reload的时候,每个 UITableViewHeaderFooterView都会重新创建,根本没有重用,而UITableViewCell 却没有问题,代码如下
每次reload 执行以后 dequeueReusableHeaderFooterViewWithIdentifier 总是调用AskListTableViewHeader 的awakeFromNib 内存是暴涨。
##怎么解决
1、google了一下,发现了这篇文章,大致思想是建一个UIViewController的子类,里面有个NSMutableDictionary的属性,来保存缓存的header,然后再实现两个方法
2、创建一个uitableview的category,利用oc运行时编程 为其添加属性保存nib及header,并且替换掉原来的registerNib: forHeaderFooterViewReuseIdentifier:
和dequeueReusableHeaderFooterViewWithIdentifier:
。头文件UITableView+ReuseHeader.h
内容为
UITableView+ReuseHeader.m
内容为
我已经把代码传到github上,具体可以通过这个传送门来查看