单击带动画的按钮(swift)关闭表视图

时间:2016-06-07 02:30:57

标签: swift

我在视图控制器中创建了一个tableview。我成功隐藏并展示了桌子。但是,它关闭并显示表时没有任何动画。我希望它滑出或滑入。以下是我的代码。

   @IBAction func clickButtonAction(sender: AnyObject) {
    UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in


    }) { (finished:Bool) -> Void in
        if(self.tableView.hidden == true){
            self.tableView?.hidden = false
        }
        else{
            self.tableView.hidden = true
        }
    }

}

1 个答案:

答案 0 :(得分:1)

您无法为origin/atomics的{​​{1}}属性设置动画。您必须在0.0到1.0之间设置hidden属性的动画。您还在动画的完成块中完成工作。您应该在UIView块中执行此操作。我还清理了一点代码。我假设alpha被声明为animations,但如果它是tableViewUITableView?,则可以省略UITableView时访问它:

UITableView

注意:您可能不想直接比较?,因为floating point math is hard。相反,我建议保留一个局部变量,使用它来跟踪状态,然后将@IBAction func clickButtonAction(sender: AnyObject) { UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in if self.tableView?.alpha == 1.0 { self.tableView?.alpha = 0.0 } else { self.tableView?.alpha = 1.0 } }, completion: { (finished:Bool) -> Void in }) } 作为基础:

alpha == 1.0