Ich habe Antworten auf vertikale Größenänderung, die automatische Layout umfassen, aber die UILabel
s ich erstellen werden nur zur Laufzeit benötigt. (Ich könnte überall von Null auf viele dieser Etiketten benötigen.)swift: Programmgesteuert erstellen UILabel feste Breite, die vertikal entsprechend der Textlänge ändert
Beispiele (ignorieren Sie die Farbe)
- Kurztext (Anmerkung gleiche Breite wie mehr Text):
- Längerer Text (gleiche Breite wie kürzeres Textbeispiel mit mehr Zeilen für zusätzlichen Text):
Wenn der Text in einer Zeile mit fester Breite passen, muß das Etikett sollte nicht vertikal ändern. Wenn jedoch mehr Zeichen vorhanden sind, sollte das Label vertikal erweitert werden, damit es zu diesen zusätzlichen Zeichen passt. Der Text sollte sich Zeile um Zeile weiterwickeln. Der Text sollte in der oberen linken Ecke des Etiketts beginnen.
Um genauer zu sein:
let marker = GMSMarker(position: myLatLng)
// see http://stackoverflow.com/a/40211383/1168364 for imageWithView
marker.icon = imageWithView(label) // **how do i create this label?**
marker.map = map // map is a GMSMapView
Diese Etiketten können überall auf dem Bildschirm sein. Dies ist für eine Kartenanwendung, bei der jedes Etikett an einem zufälligen Ort platziert wird. Die Standorte der Labels stehen in keiner Beziehung zueinander.
Mögliche Duplikate von [Adjust UILabellenhöhe abhängig vom Text] (http://stackoverflow.com/questions/446405/adjust-uilabel-height-depending-on-the-text) – alexburtnik
@alexburtnik können Sie dies bitte noch einmal überdenken als nicht ein Duplikat? Diese Lösung scheint hier nicht zu funktionieren. Beachten Sie die Additionsanforderung fester Breite. Vielleicht haben Sie einige Ideen, warum die folgende Lösung nicht funktioniert. – lf215
Ich habe eine enge Abstimmung zurückgezogen, aber es ist immer noch ein Duplikat. Bei der folgenden Lösung wird davon ausgegangen, dass Sie Einschränkungen für die automatische Layouts verwenden. Meine Lösung ist eine Alternative, sie aktualisiert den Frame manuell. – alexburtnik