Ich arbeite gerade an einer App, um iOS-Programmierung und Swift zu lernen. Ich habe eine Ansicht, die zwei Hauptuntersichten enthält, eine MKMapView und eine UITableView. Wenn eine bestimmte Annotation in der MapView ausgewählt ist, möchte ich bestimmte Zellen in der TableView ausgeblendet werden. Wenn die Annotation deaktiviert ist, sollten die Zellen erneut angezeigt werden. Zurzeit mache ich das, indem ich die Höhe für die Zellen, die auf 0 versteckt werden sollen und tableView.beginUpdates()
tableView.endUpdates()
aufrufen, dies verursacht jedoch alle Arten von AutoLayout-Einschränkungen in meinen benutzerdefinierten Zellen zu brechen. Ich habe auch versucht, die versteckte Eigenschaft in der Zelle auf True zu setzen, bevor ich die Höhe auf 0 setze, aber die AutoLayout-Bedingungen werden immer noch gebrochen.So verstecken Sie UITableViewCells, während Sie die AutoLayout-Einschränkungen nicht verletzen
Was wäre der richtige Weg, dies zu tun?
Vielen Dank im Voraus.
Es ist ein guter Weg, zwei verschiedene Arrays als Tabellenansicht Datenquelle zu halten. Die ersten haben alle Ihre Daten, die angezeigt werden können. Die zweite ist die echte Array-Datenquelle der Tabellenansicht. Wenn Sie auf die Anmerkungen klicken, können Sie das zweite Array erneuern (indem Sie die Daten einfügen oder löschen, die angezeigt werden müssen oder nicht), indem Sie die Daten aus dem ersten Array übernehmen. Die Tabellenansicht wird erst am Ende neu geladen. –
So habe ich meinen ViewController zuerst implementiert, aber ich konnte nicht herausfinden, wie ich das Verschwinden von Zellen animieren könnte, wenn das zweite Array aktualisiert wird. Ich bin offen für Vorschläge, wie ich diese Veränderung animieren könnte. –