将自定义UILabel定位在UITableView页脚视图中

时间:2015-07-17 21:53:28

标签: ios swift uitableview

我有一个UITableViewController,我通过

设置footerView
self.tableView.tableFooterView = FooterView()

在FooterView类中,我通过

添加了标签
self.addSubView(label)

我注意到以下情况。

  • footerView位于tableView
  • 的顶部
  • 标签位于页脚视图内

我的问题是

  • 当我将footerView的Frame设置为(0,0,100,100)时,它似乎在tableView上重叠。如何将页脚放在tableView的底部?

  • 通过页脚的addSubView()添加标签时。它是与footerView或tableView相关的定位吗?

1 个答案:

答案 0 :(得分:1)

  • FooterView的默认高度为44.如果您没有将footerView的高度设置为更多,然后将标签设置为高度100,则它会重叠。

  • 使用footerView进行定位。

您可以使用UITableViewDelegate方法设置footerView的高度.Below是实现您想要的方式.Footer视图仅在表视图的底部。

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 5
}

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView .dequeueReusableCellWithIdentifier("cellIdentifier") as! UITableViewCell
        cell.textLabel?.text = "trial"
        return cell
    }

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    if section == 1{
        return 100
    }
        return 0

}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 2 //The number you needed + 1
}

func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    if section == 1{

        return FooterView()
    }
    return nil
}

删除此行

self.tableView.tableFooterView = FooterView()