2016-04-10 24 views
1

Ich verwende zwei benutzerdefinierte Zellen in einer Tabellenansicht. Die erste Zelle enthält zwei Labels. Die zweite Zelle enthält eine Beschriftung und eine Sicht (Unterklasse von GMSMAPVIEW). Ich habe den folgenden Code für die dynamische Zellenhöhe verwendet.Uitableview Zelle dynamische Höhe

TableView.rowHeight = UITableViewAutomaticDimension 
TableView.estimatedRowHeight = 160.0 

Ich habe richtige Einschränkungen für alle Zellenelemente festgelegt. Das Problem, vor dem ich stehe, ist: Die erste Zelle ist perfekt. Aber die zweite Zelle zeigt mir nicht die mapView (bedeutet, dass die Höhe der zweiten Zelle auf nur 44 reduziert ist). Was verbirgt meine Mapview in dieser Zelle. Fehle ich etwas?

Dies ist der Screenshot von meinem Tableview: enter image description here

Die Essential Information Zelle ist das mit dem Thema. Einschränkungen für Essential Information Label sind: enter image description here

Einschränkungen für die mapView sind: enter image description here

+0

Sie verwenden Auto-Layout? Autolayout ist ein Muss für 'UITableViewAutomaticDimension' – HardikDG

+0

ja ich benutze automatisches Layout. Ich denke, ich erwähnte Einschränkungen! :) –

+0

ohh, ja, mein Fehler, hat Ihre erste Zelle bekommen richtige Höhe oder es ist auch von 44? – HardikDG

Antwort

1

Zu allererst Sie müssen diesen Code in viewDidLoad schreiben

tableView.estimatedRowHeight = 160 
tableView.rowHeight = UITableViewAutomaticDimension 

Als nächstes überprüfen Sie Ihre Einschränkungen in Ihrer XIB. Stellen Sie sicher, dass keine Fehler vorliegen.

Dann, wenn Sie die Karte nicht sehen können, überprüfen Sie, ob Sie einen gültigen API-Schlüssel von Google Dev-Konsole haben und steckt es in der AppDelegate wie in diesem Beispiel:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 
    GMSServices.provideAPIKey("MYAp1KEy-348234239423949294239"); 
    return true 
} 

Sie weitere Informationen in den official documents finden

wenn Sie Probleme haben Ihre mapviews zu aktualisieren, nachdem eine Markierung platzieren Sie den offiziellen Guide Google Maps SDK for iOS

PS folgen können: Sie können überprüfen, ob Sie alle Schritte richtig über Ihre schnellen google map Projekt machen fo llow diese Schritt-für-Schritt-Anleitung: Google Maps iOS SDK Tutorial: Getting Started

+0

Meine Karten arbeiten in einem anderen View-Controller.SO bedeutet es, dass es kein Problem mit dem Schlüssel gibt. –

+0

Können Sie zeigen, wie Sie mapView Zellbeschränkungen festlegen? Kannst du das Google-Logo oder nichts sehen? –

+0

Ja, ich habe die Frage bearbeitet. Bitte sehen Sie sich meine Einschränkungen an. –

0

Ändern Sie die Reihenfolge wie unten. Rufen Sie zuerst RowHeight an.

TableView.estimatedRowHeight = 160.0 
TableView.rowHeight = UITableViewAutomaticDimension 

Von viewDidAppear wie die Tabellendaten neu zu laden,

[TableView reloadData]; 
TableView.reloadData() //for swift 
+0

Keine Hoffnung! Hat nicht geholfen :( –

+0

haben Sie versucht, Tabellendaten von viewdidload neu zu laden? Wenn ja, dann sollte es Probleme mit Ihren Beschränkungen geben. Überprüfen Sie die Größe und die Beschränkungen Ihrer Mapview. – Lion

+0

Ich habe die Einschränkungen zu meiner Frage hinzugefügt. Ich fühle nicht wenn irgendetwas fehlt. –

0

können Sie einmal versuchen, die Änderung der Reihenfolge der Zeilen im Code in viewDidLoad()

tableView.estimatedRowHeight = 160 
tableView.rowHeight = UITableViewAutomaticDimension 
+0

Nein, das löst das Problem nicht !! :( –

Verwandte Themen