在一个tableView中,我有一个按钮,按下该按钮会修改其下方单元格的高度,以展开和收缩一个日期选择器,使其显示和消失。但是,我得到了一个奇怪的动画错误,当拾取器关闭和打开时,拾取器会波动并闪烁。
这是我的tableView heightForRowAtIndexPath
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == 0 {
return 147
} else if indexPath.row == 4 {
if picker {
return 216
} else {
return 0
}
} else {
return 70
}
}
我的按钮操作
@IBAction func birthdateLabelTapped(sender: AnyObject) {
picker = !picker
tableView.beginUpdates()
tableView.endUpdates()
}
以及var
var picker: Bool = false
我正在使用故事板来设置静态单元格。
答案 0 :(得分:1)
环顾四周之后,我似乎无法找到这个问题的任何答案,但我知道出了什么问题。
我的约束位置使得尾随空间,前导空间,顶部空间和底部空间均为-8.0。发生的事情是,当单元格正在扩展并收缩时,日期选择器本身也在扩展和收缩,这会使datePicker在关闭时挤压导致闪烁和奇怪的动画。
最终解决方案是摆脱Bottom Space约束,然后添加Height约束。这解决了问题,因为它不再修改datePicker本身,现在它只是使datePicker不可见。