在Storyboard、Xib中优雅的给UITableView设置tableHeaderView 、tableFooterView

96
liangdahong
1.1 2017.09.14 15:58* 字数 275

SB-Xib-TableView-HeaderView-FooterView

StoryboardXib 优雅的给 UITableView 设置tableHeaderViewtableFooterView

本项目主要是介绍在SB/Xib中给UITableView设置tableHeaderViewtableFooterView的方法。默认认为已经基本熟悉SB/Xib的使用哈。

在平时的项目开发中,可能使用sb或者xib会特别快,当然喜欢代码的就可以忽略了哈。我们在用UITableView可能会使用到tableHeaderViewtableFooterView这2个属性,在有一些需求来说是得心应手。之前都是使用代码添加UITableView的tableHeaderViewtableFooterView,虽然也挺方便,那么是否可以使用xib直接添加呢?在网上搜了下,答案是可以的哈,下面的简单介绍下添加的方式。

Storyboard 中给UITableView设置tableHeaderViewtableFooterView

Storyboard
Storyboard

Xib 中给UITableView设置tableHeaderViewtableFooterView

Xib
Xib

运行结果

运行结果
运行结果

怎么样自适应高度

可以添加如下代码完成自适应,参考于这里

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    {
        CGFloat height = [self.tableView.tableFooterView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
        CGRect footerFrame = self.tableView.tableFooterView.frame;
        footerFrame.size.height = height;
        self.tableView.tableFooterView.frame = footerFrame;
        self.tableView.tableFooterView = self.tableView.tableFooterView;
    }
    {
        CGFloat height = [self.tableView.tableHeaderView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
        CGRect headerFrame = self.tableView.tableHeaderView.frame;
        headerFrame.size.height = height;
        self.tableView.tableHeaderView.frame = headerFrame;
        self.tableView.tableHeaderView = self.tableView.tableHeaderView;
    }
}

完整Demo

地址

参考

iOS开发
Web note ad 1