我有三个表格视图单元格,到期日期单元格在选择时应扩展为200,而在未选择时应扩展为44(默认)。由于某些原因,它不会扩展。
我无法在AutoLayout中执行此操作,因为必须对其进行更改,因此我尝试使用switch语句,并且当它位于特定的索引路径上时,它应该扩展,但是无法正常工作。
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let normalCellHeight = CGFloat(44)
let largeCellHeight = CGFloat(200)
switch(indexPath) {
case [1,0]: // Due Date Cell
return isPickerHidden ? normalCellHeight : largeCellHeight
case [2,0]: // Notes Cell
return largeCellHeight
default: return normalCellHeight
}
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch(indexPath) {
case [2,0]:
isPickerHidden = !isPickerHidden
dueDateLabel.textColor = isPickerHidden ? .black : tableView.tintColor
tableView.beginUpdates()
tableView.endUpdates()
default: break
}
}
预期结果: 点击“到期日期”单元格,单元格展开以显示日期选择器
实际结果: 单元格突出显示,但不展开。
答案 0 :(得分:3)
尝试重新加载<input id="input-id" list="datalist-id" type="text" placeholder="Select Cluster Group" autocomplete="off" />
<datalist id="datalist-id">
<div ng-repeat="country in Countries">
<option> {{country.name}} </option>
</div>
</datalist>
和didSelectRow
中beginUpdates
上的单元格。
请看下面的示例代码。根据需要选择行实景动画。
endUpdates
答案 1 :(得分:0)
在didSelectRowAt委托中重新加载单元格
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
switch(indexPath) {
case [2,0]:
isPickerHidden = !isPickerHidden
dueDateLabel.textColor = isPickerHidden ? .black : tableView.tintColor
tableView.reloadRows(at: [indexPath], with: .top)
default: break
}
}