在点击时,尝试更改单元格的高度包含pickerview

时间:2018-03-30 14:52:36

标签: ios swift xcode uitableview uipickerview

我试图通过更改单元格的高度来点击我的PickerView显示更多区域,并在选择器选择完成后返回到正常大小,从而使包含UIPickerView的单元格展开。

当我点击单元格时,它内部只有PickerView被点击..所以我无法使用HeightForRow来改变单元格高度。任何人都可以帮忙!

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

       if (indexPath == [0,0])
        {
             return 150
        }else{
              return 70 
        }}

2 个答案:

答案 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,则会将点击事件发送到单元格。然后,您需要在该索引路径重新加载表(以调整单元格大小),并重新启用选择器。