如何在swift中的tableViewCell中添加pickerView?

时间:2016-05-08 12:21:51

标签: swift

我想点击它时在tableView单元格中添加一个pickerView。

就像这张照片 enter image description here

但是我想添加一个pickerView来选择性别或喜欢的食物等而不是datePicker。

但我在google上发现了一些示例和解决方案,这可能吗?

1 个答案:

答案 0 :(得分:1)

创建一个变量以检查需要indexPaths的{​​{1}}:

UIPickerView

然后在var indexesNeedPicker: [NSIndexPath]? 方法中附加indexPaths。 如果已经添加它们,也要删除它们

didSelectRowAtIndexPath

然后修改您的func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { if indexesNeedPicker != nil { if indexesNeedPicker!.contains(indexPath) == true { indexesNeedPicker!.removeAtIndex((indexesNeedPicker!.indexOf(indexPath))!) return } } indexesNeedPicker?.append(indexPath) self.table.deselectRowAtIndexPath(indexPath, animated: true) self.table.reloadData() } 方法

cellForRowAtIndexPath

将代理添加到ViewController

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .Default, reuseIdentifier: "cell")
    if indexesNeedPicker?.contains(indexPath) == true {
        let pickerView = UIPickerView(frame: cell.frame)
        pickerView.delegate = self
        pickerView.dataSource = self
        cell.addSubview(pickerView)
    }
    return cell
}

最后,添加并自定义方法:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIPickerViewDelegate, UIPickerViewDataSource {