按下按钮时快速显示UITableView HeaderView(快速)

时间:2014-10-10 10:58:26

标签: uitableview animation swift

我创建了一个UIView" headerView"它在我的UITableView中充当tableHeaderView。

我想最初隐藏它,当按下按钮时,它会从导航栏后面滑到屏幕上,同时按下TableView。

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.resetShowGroups()
}

private func resetShowGroups() {

    var topFrame = self.headerView.frame
    topFrame.origin.y -= topFrame.size.height
    self.headerView.frame = topFrame

    self.tableView.tableHeaderView = nil
}

通过将tableHeaderView设置为nil以在开始时消失。

按下按钮时,会调用以下内容尝试将headerView滑动到屏幕上:

func displayGroupPicker() {

    UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseOut, animations: {

        if (!self.showGroups) {
            self.tableView.tableHeaderView = self.headerView
        } else {
            self.resetShowGroups()
        }

        self.showGroups = !self.showGroups

        }, completion: { finished in
            println("Done")
    })

}

这段代码尽可能接近。看起来没问题但因为它在隐藏时设置为nil会在幻灯片动画之前消失,所以看起来很简单。

在这方面花了很长时间,并且已经用尽了我的谷歌搜索技巧。

欣赏任何指示。

感谢。

1 个答案:

答案 0 :(得分:1)

我设法解决了我的问题。

我没有动画UITableViewController中的tableHeaderView,而是创建了一个UIViewController,并将UITableView和我的SlideView放在UIViewController的UIView中。

然后,我可以独立于UITableView动画我的SlideView,在需要时滑动On和Off屏幕。