按下按钮时 UITableView 标题视图的动画显示(swift)

Posted

技术标签:

【中文标题】按下按钮时 UITableView 标题视图的动画显示(swift)【英文标题】:Animate show of UITableView HeaderView when button pressed (swift) 【发布时间】:2014-10-10 10:58:25 【问题描述】:

我创建了一个 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】:

我设法解决了我的问题。

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

然后我可以独立于 UITableView 为我的 SlideView 设置动画,在需要时滑动打开和关闭屏幕。

【讨论】:

以上是关于按下按钮时 UITableView 标题视图的动画显示(swift)的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 通过按下按钮对内容进行排序[关闭]

按下按钮时的 UIView 动画 - 第一次尝试时不可见

在编辑模式下按下删除按钮时 UITableView 崩溃

更改在 UITableview 中按下的特定按钮的图像

在约束上动画更改 UITableView 节标题的高度

UITableView 显示动画