隐藏导航栏后面的第一个单元格

时间:2016-03-16 06:19:30

标签: ios swift uitableview

我需要在加载时隐藏导航栏后面的第一个单元格,并且只能在向下滚动tableview时看到。

1 个答案:

答案 0 :(得分:0)

您可以通过在contentInset方法中设置viewDidLoad来隐藏导航栏后面的第一个单元格,如下所示:

self.tableView.contentInset = UIEdgeInsets(top: -44, left: 0, bottom: 0, right: 0)

之后,您可以使用scrollViewDidScroll来检测用户是否滚动tableView,然后您可以再次设置contentInset一个用户向下滚动,如下面的代码所示:

override func scrollViewDidScroll(scrollView: UIScrollView) {

    if (self.lastContentOffset > scrollView.contentOffset.y) {
        if lastContentOffset < -55{

            if !tablevieSetTo0 {
                self.tableView.contentInset = UIEdgeInsets(top: 65, left: 0, bottom: 0, right: 0)
                tablevieSetTo0 = true
            }
        }
    }
    self.lastContentOffset = scrollView.contentOffset.y
}

以下是完整的代码:

import UIKit

class TableViewController: UITableViewController {

    let data = ["1", "2", "3", "4", "5"]
    private var lastContentOffset: CGFloat = 0
    var tablevieSetTo0 = false

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.contentInset = UIEdgeInsets(top: -44, left: 0, bottom: 0, right: 0)
    }

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

        cell.textLabel?.text = data[indexPath.row]
        return cell
    }

    override func scrollViewDidScroll(scrollView: UIScrollView) {

        if (self.lastContentOffset > scrollView.contentOffset.y) {
            if lastContentOffset < -55{

                if !tablevieSetTo0 {
                    self.tableView.contentInset = UIEdgeInsets(top: 65, left: 0, bottom: 0, right: 0)
                    tablevieSetTo0 = true
                }
            }
        }
        self.lastContentOffset = scrollView.contentOffset.y
    }
}

项目sample了解更多信息。