我试图通过更改单元格的高度来点击我的PickerView显示更多区域,并在选择器选择完成后返回到正常大小,从而使包含UIPickerView的单元格展开。
当我点击单元格时,它内部只有PickerView被点击..所以我无法使用HeightForRow来改变单元格高度。任何人都可以帮忙!
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if (indexPath == [0,0])
{
return 150
}else{
return 70
}}
答案 0 :(得分:0)
您可以尝试使用委托
protocol HeightManager{
func changeHeight(TableCustomCell)
}
class TableCustomCell: UITableViewCell {
var delegate: HeightManager?
@IBAction func expandCollapseClicked(_ sender: UIButton) {
self.delegate?.changeHeight(sender:self)
}
}
VC中的
class viewController: UIViewController,HeightManager{
override func viewDidLoad() {
super.viewDidLoad()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = areaSettTable.dequeueReusableCell(withIdentifier:CellIdentifier1) as! TableCustomCell
cell.delegate = self
return cell
}
func changeHeight(sender:TableCustomCell) {
// change height here in say array of heights
self.tableView.reloadData()
}
}
答案 1 :(得分:0)
如果设置picker.userInteractionEnabled = false
,则会将点击事件发送到单元格。然后,您需要在该索引路径重新加载表(以调整单元格大小),并重新启用选择器。