空时显示UITableView页脚

时间:2016-03-31 10:09:47

标签: ios objective-c uitableview

我有UITableView有时是空的,我有UITableView的页脚。即使表格视图中没有内容,我想要的是始终显示的页脚。这可能吗?或者,只是在UITableView中添加一个额外的单元格并将其用作页脚?

更愿意将其作为页脚分开,而不是仅将其作为单元格添加到UITableView的末尾。

任何帮助表示感谢。

4 个答案:

答案 0 :(得分:0)

当没有行

时,你可以使用这样的东西
UIView* footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
    [footerView setBackgroundColor:[UIColor clearColor]];
    self.tableView.tableFooterView = footerView;
    [self.tableView setSeparatorStyle:(UITableViewCellSeparatorStyleNone)];
    [self.tableView setContentInset:(UIEdgeInsetsMake(0, 0, -350, 0))];

答案 1 :(得分:0)

好的第一件事就是,如你所说" UITableView有时是空的"。因此,如果您的表为空,并在其中添加页脚视图。如下所示

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView* myFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 50)];
    [myFooterView setBackgroundColor:[UIColor blueColor]];
    return myFooterView;
}

您的页脚视图将显示在tableview的顶部,因为tableview中没有行。如下图所示。红色是TableView颜色,蓝色是页脚视图颜色。

enter image description here

当你的桌子不是空的时,页脚视图就像

enter image description here

所以我建议你在表视图下面添加额外的视图,并在该视图中显示内容。希望这能清除你的疑虑。

答案 2 :(得分:0)

您只需要调用以heightForFooterInSection和viewForFooterInSection作为参数的表视图函数。在第一个中,返回所需的页脚高度,在第二个中,返回要显示为页脚视图的视图。例如:

   import UIKit

class ViewController: UIViewController {

    @IBOutlet var tableView: UITableView!

    var numberOfCells = 0

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self
        tableView.register(UINib(nibName: "ExampleCellTableViewCell", bundle: nil), forCellReuseIdentifier: "ExampleCellTableViewCell")

    }
}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return numberOfCells
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        guard let cell = self.tableView.dequeueReusableCell(withIdentifier: "ExampleCellTableViewCell") as? ExampleCellTableViewCell else { return UITableViewCell() }

        return cell
    }

    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 80.0
    }

    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        return FooterView.instanceFromNib()
    }
}

即使单元格数为0,也会显示页脚视图: TabelView with the number of cells equal 0 and a footer view

您可以在此处查看完整的示例项目: https://github.com/erichflock/TableViewWithFooter

答案 3 :(得分:0)

对于任何想要具有空白/无文本(通常只是空白)的标准页脚的人,您都可以将空格“”设置为页脚文本。这样将显示页脚,并且您的页脚高度将生效。