我创建了一个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会在幻灯片动画之前消失,所以看起来很简单。
在这方面花了很长时间,并且已经用尽了我的谷歌搜索技巧。
欣赏任何指示。
感谢。
答案 0 :(得分:1)
我设法解决了我的问题。
我没有动画UITableViewController中的tableHeaderView,而是创建了一个UIViewController,并将UITableView和我的SlideView放在UIViewController的UIView中。
然后,我可以独立于UITableView动画我的SlideView,在需要时滑动On和Off屏幕。