Ich habe eine PickerView, bestehend aus einem Etikett und Bild. Ich aktualisiere dieses Bild, wenn Pickerview auf diesen bestimmten angeklickt wird. aber um die Änderung des Bildes zu zeigen, muss ich PickerView neu laden. und wenn ich neu lade geht es zurück in die erste Reihe. Gibt es eine Möglichkeit, nur diese bestimmte Reihe von PickerView neu zu laden?Reload bestimmte Reihe von PickerView in Swift
Code:
if selectedRows.contains(contactPerson.text!) {
FilteredQuestion_Images[row] = UIImage(named: "Unchecked Checkbox-26")!
let image = FilteredQuestion_Images[row]
imageView = UIImageView(image: image)
if let itemToRemoveIndex = selectedRows.index(of: contactPerson.text!) {
selectedRows.remove(at: itemToRemoveIndex)
ContactPersons_Multiple.remove(at: itemToRemoveIndex)
}
self.dropdownPicker.reloadAllComponents()
}else {
selectedRows.append(contactPerson.text!)
self.imageName = "Checked Checkbox-26"
FilteredQuestion_Images[row] = UIImage(named: "Checked Checkbox-26")!
let image = FilteredQuestion_Images[row]
imageView = UIImageView(image: image)
self.dropdownPicker.reloadAllComponents()
}
}
Code of ViewForRow:
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let customeView = UIView(frame: CGRect(x: 0, y: 0, width: self.dropdownPicker.rowSize(forComponent: 0).width, height: 30))
// for label
let label = UILabel(frame: CGRect(x: 0, y: 0, width: customeView.frame.width - 35, height: 30))
label.textAlignment = .left
label.text = self.ContactPers[row]
if FilteredContactsSelected == true {
label.text = FilteredContactsNames[row]
}
let image = FilteredQuestion_Images[row]//UIImage(named: imageName)
imageView = UIImageView(image: image)
imageView?.frame = CGRect(x: self.dropdownPicker.rowSize(forComponent: 0).width - 36 , y: 0, width: 26, height: 26)
customeView.addSubview(imageView!)
customeView.addSubview(label)//pickerLabel)
return customeView//pickerLabel
}
wo genau das nennen? –
Haben Sie 'optionale öffentliche func pickerView implementiert (_ PickerView: UIPickerView, viewForRow Zeile: Int, forComponent Komponente: Int, wiederverwenden Ansicht: UIView?) -> UIView' Methode von' UIPickerViewDelegate'? –
Ja, ich benutze es. –