2017-08-02 60 views
0

我遇到了问题。我有这样的tableview这pickerView enter image description here更新UITableViewCell

,这是视图 - 控制的pickerView功能:

let gender = ["M","F"] 

@IBOutlet weak var dataTableView: UITableView! 

//pickerFuncs 

func numberOfComponents(in pickerView: UIPickerView) -> Int { 
    return 1 
} 

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return gender[row] 
} 

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return gender.count 
} 

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    print(gender[row]) 
} 

如何修改“M”与uipicker的选择单元格?谢谢大家!

+1

如果细胞是动态创建一个适当的数据源模型,更新模型和重新加载表视图。如果单元格静态使用IBOutlets并直接更新单元格。 – vadian

回答

0

创建一个变量

var currentGender = "M" 

设置你的TableViewCell与currentGender

cell.gender = currentGender 

当您在UIPickerView选择一排,

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    currentGender = gender[row] 
    // Then reload your TableView row 
    let indexPath = IndexPath(item: rowNumber, section: 0) 
    tableView.reloadRows(at: [indexPath], with: .top) 
} 
0

我假设你想让你的M和F出现在你的pickerView中。要做到这一点,你必须创建一个参考。这可以通过IBOutlet完成,或者你可以这样编程:let pickerView = UIPickerView()。在附注中,我还假设您在View Controller中只使用一个pickerView。如果您使用多个,请为每个pickerView设置一个标签。这可以在界面构建器中完成,并按照编程方式完成:pickerView.tag = 1。然后根据这些标签更改你的pickerView函数。

0
  1. 创建一个变量。 var gender =“M”
  2. 再次初始化您的性别变量。在这个委托方法中。 FUNC pickerView(_ pickerView:UIPickerView,didSelectRow行:中等,inComponent组分的:int){ 性别=性别[行] //然后重新装入您的TableView行 表view.reloadData() }

  3. 添加这些行到你的cellforrow_atIndexPath。 Cell.genderIdicatorLbl.text =性别 注:genderIndicatorLbl是IBOutlet中为您的性别指示器标签