我是iOS开发,接到的需求中,大都用列表展示数据。故开发中使用最频繁的也就是UITableView控件了。为了发挥原生的重用优势,除了cell外,header 和 footer我都遵循重用模式,哪怕只有一个header 或 footer。
特点一
我可不是滥用哦,我由此发现UITableViewHeaderFooterView的一个特点。
在某次开发中,由于服务器返回数据的量不定,再结合需求文档给出展示数据样式和整体滑动功能需求。我决定选择选择用UITableView控件。需求文档样式如图所示:
我创建了1个section,将样式一,用header实现,将样式三,用footer实现,将样式二,用cell实现。尽管在表中,只有一个header 和 footer,我依然将header 和 footer进行了重用。用纯代码实现,代码为:
UITableViewHeaderFooterView * footerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:identifier];
if (!footerView) {
footerView = [[UITableViewHeaderFooterView alloc] initWithReuseIdentifier:identifier];
//如果样式较简单,在此处布局footer即可。如果样式较复杂,布局代码较多,需要另起个方法布局footer,调用即可。方便查看不冗长
}
return footerView;
我发现刷新表时,上述重用代码,在iOS9以上,[tableView dequeueReusableHeaderFooterViewWithIdentifier:identifier]方法得到的对象不为nil,即使只有一个footer或header,重用机制可用。在iOS9以下,同样的代码得到的对象为nil,需要再次进入if语句内,重用机制不可用。
特点二
创建UITableViewHeaderFooterView对象header,通过设置header.contentView.backgroundColor,设置header的背景色。其他的颜色都可以,唯独[UIColor clearColor]不可以,即使设置清空背景色,header依然会有颜色,无法透明。如果需求上背景色清空,此时要更换创建header的方案,改为用UIView创建,为了效果,舍弃重用机制。我是iOS开发,以上讲述我发现的UITableViewHeaderFooterView的两个特点,抛砖引玉,希望能够有所帮助