Ich bin neu zu swift, mit swift 3, baute ich tableview, liest Gruppe von Bildern und ich möchte es wie folgt haben: wenn Benutzer ein Bild in der Tabellenansicht auswählen Ich zeige es in einer UIImageView an und wähle ein Bild ab, das er bereits in der Tabellenansicht ausgewählt hat, um es aus der UIImageView zu entfernen (Mehrfachauswahl ist aktiviert). Mein Code unten funktioniert nur für eine Bildauswahl, wenn jedoch mehrere Bilder ausgewählt und dann abgewählt werden, wird der zuletzt ausgewählte nur aus dem UIImageview entfernt. Also meine Frage ist, wie kann ich die UIImageView entfernen, die in der UITableView zum abgewählten Datensatz gehörtWie UIView von der SuperView mit spezifischer Position programmgesteuert entfernen
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
image_view.image = UIImage(data: Saveddata[indexPath.row].photo as! Data)
//create image view programmatically
currentImageView = UIImageView(frame: CGRect(x: 130 + (i * 10), y: 50 + (i * 5), width: 50, height: 100))
currentImageView.contentMode = .scaleAspectFit
currentImageView.image = image_view.image
view.addSubview(currentImageView as UIView)
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
currentImageView.removeFromSuperview()
}
Sie können View- oder UI-Komponenten nicht einfach in 'UITableViewCell' entfernen. Es ist für andere Zeilen wiederverwendbar. Was Sie tun können, ist ein Flag mit dem Global-Array zu setzen und 'indexPath.row' als Index für diejenigen zu behalten, die Sie entfernt haben. Dann prüfen Sie in Ihrem 'cellForRow', ob dieser Index auftritt, blenden Sie das Bild aus oder ändern Sie die Einschränkung 'width' in 0 – xmhafiz
vermeiden Sie' addSubview', stattdessen verwenden Sie stackboard oder xib mit IBOutlet. Dies verhindert das Erstellen doppelter Ansichten in der Zelle – xmhafiz
@ h44f33z, danke aber ich versuche nicht, es aus der Tabellenansicht zu entfernen. Ich versuche, es aus einer von mir erstellten UIview zu entfernen und das Bild hinzuzufügen, wenn dieses Bild in der tableview – rania