选择单元格时,在UITableView中显示UIButton

时间:2015-07-31 11:12:36

标签: ios iphone swift uitableview uibutton

我想在UIButton添加UITableViewCell。我的单元格在选中时会扩展高度。只有在展开区域调用didSelectRow时才能显示该按钮...我有4个单元格,我想填充不同的问题,表单和按钮。我应该对每个细胞进行细分吗?

到目前为止,这是我的代码:

let SelectedCellHeight: CGFloat = 500.0
let UnselectedCellHeight: CGFloat = 44.0
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 4
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let logItemCell = tableView.dequeueReusableCellWithIdentifier("LogCell", forIndexPath: indexPath) as! UITableViewCell




}

// Used to expand cell when selected
func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
    if let selectedCellIndexPath = selectedCellIndexPath {
        if selectedCellIndexPath == indexPath {
            return SelectedCellHeight
        }
    }
    return UnselectedCellHeight
}


func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {

    if let selectedCellIndexPath = selectedCellIndexPath {
        if selectedCellIndexPath == indexPath {
            self.selectedCellIndexPath = nil
        } else {
            self.selectedCellIndexPath = indexPath
        }
    } else {
        selectedCellIndexPath = indexPath
    }
    tableView.beginUpdates()
    tableView.endUpdates()

}

2 个答案:

答案 0 :(得分:2)

是的,您应该制作4个具有不同标识符和类的原型单元格,并根据indexPath在“cellForRowAtIndexPath”中返回您想要的单元格。

答案 1 :(得分:0)

您应该子类化您想要的每个单元格。当调用 function dateAction(){ var options = { date: new Date(), mode: 'date' }; alert("here"); datePicker.show(options, function(date){ alert("date result " + date); }); } 并且扩展单元格时,didSelectRow应该被称为