我是swift 2的新手,我有2个按钮,我希望每个按钮关闭我的表视图中的特定单独行。 我有第一个If语句工作,但我的第二个IF语句我无法工作,我不知道如何正确实现它。 任何帮助将不胜感激。
var PickerMaterialViewHidden = true
var PickerPostViewHidden = true
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.section == 0 && indexPath.row == 2 && PickerMaterialViewHidden {
return 0
}
else {
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
if indexPath.row == 5 && PickerPostViewHidden {
return 0
}
else {
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
}
@IBAction func ToggleMaterialPickerView(sender: AnyObject) {
PickerMaterialViewHidden = !PickerMaterialViewHidden
tableView.beginUpdates()
tableView.endUpdates()
}
@IBAction func TogglePostPickerView(sender: AnyObject) {
PickerPostViewHidden = !PickerPostViewHidden
tableView.beginUpdates()
tableView.endUpdates()
}
答案 0 :(得分:0)
为你heightForRowAtIndexPath
尝试
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.section == 0 && indexPath.row == 2 && PickerMaterialViewHidden {
return 0
}
if indexPath.row == 5 && PickerPostViewHidden {
return 0
}
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
并尝试更改为平滑动画
@IBAction func ToggleMaterialPickerView(sender: AnyObject) {
PickerMaterialViewHidden = !PickerMaterialViewHidden
UIView.animateWithDuration(0.3, animations: { () -> Void in
self.tableView.beginUpdates()
self.tableView.endUpdates()
})
}