2017-08-02 2 views
0

Ich habe ein Problem. Ich habe diese Tableview und dieses picker enter image description hereUpdate UITableViewCell

und dies ist die picker Funktionen der Viewcontroller:

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]) 
} 

Wie der „m“ in der Zelle mit der Auswahl des UIPicker ändern? Danke an alle!

+1

Wenn die Zellen dynamisch erstellen eine entsprechende Datenquelle Modell sind, das Modell aktualisieren und die Tabellenansicht neu zu laden. Wenn die Zellen statisch sind, verwenden Sie IBOutlets und aktualisieren Sie die Zellen direkt. – vadian

Antwort

0

Erstellen Sie eine Variable

var currentGender = "M" 

Ihre TableViewCell Set mit currentGender wie

cell.gender = currentGender 

Wenn Sie eine Zeile in UIPickerView wählen,

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

Ich nehme an, Sie möchten, dass Ihre M und F in Ihrer PickerView erscheinen. Um dies zu tun, müssen Sie eine Referenz erstellen. Dies kann durch eine IBOutlet oder Sie können es programmgesteuert so tun: let pickerView = UIPickerView(). Nebenbei nehme ich an, dass Sie nur einen pickerView im View Controller verwenden. Wenn Sie mehrere verwenden, legen Sie für jede der PickerViews ein Tag fest. Dies kann im Interface Builder und programmatisch so gemacht werden: . Ändern Sie dann Ihre PickerView-Funktionen basierend auf diesen Tags.

0
  1. Erstellen Sie eine Variable. var gender = "M"
  2. Initialisiere erneut deine Geschlechtsvariable. In dieser Delegiertenmethode. func picker (_ picker: UIPickerView, didSelectRow Reihe: Int, inComponent Komponente: Int) { gender = Geschlecht [Zeile] // Dann wird Ihr Tableview nachladen Zeile Tabelle view.reloadData() }

  3. hinzufügen diese Zeilen zu Ihrem cellforrow_atIndexPath. Cell.genderIdicatorLbl.text = Geschlecht Hinweis: genderIndicatorLbl ist IBOutlet für Ihr Geschlecht Indikator Label-