你不能動畫的UIView
的hidden
財產。您必須改變0.0和1.0之間的alpha
屬性的動畫效果。您還在動畫的完成塊中完成您的工作。你應該在animations
塊中完成它。我還清理了一些代碼。我假設tableView
聲明爲UITableView?
,但如果它是UITableView
或UITableView
,你可以訪問時省略?
:
@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
,因爲floating point math is hard。相反,我建議保留一個局部變量,使用它來跟蹤狀態,然後根據您的alpha
關閉:
// Make sure this matches the initial hidden state of your table view.
// So if your table view starts at alpha == 0.0, this should be true.
private var tableViewHidden: Bool = false
@IBAction func clickButtonAction(sender: AnyObject) {
tableViewHidden = !tableViewHidden
UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {() -> Void in
if tableViewHidden {
self.tableView?.alpha = 0.0
}
else {
self.tableView?.alpha = 1.0
}
}, completion: { (finished:Bool) -> Void in
})
}
我是編程新手。它有沒有任何這樣的例子? –
使用示例代碼進行編輯。 –
我可以讓它滑出或滑入,而不是淡出。我已經應用這個代碼,表格將淡出而不是滑入和滑出。 –