2017-01-29 5 views
1

Ich arbeite an einem Musik-Player und habe Etiketten für den Song, das Album und den Künstler eingerichtet. Nun, nur aus Gründen der UI möchte ich, dass das Song-Label immer Platz für 3 Zeilen verwendet, auch wenn der Text 1 Zeile ist. Ich habe die Anzahl der Zeilen im Attributinspektor auf 3 gesetzt, aber nur 3 Zeilen, wenn der Titel so lang ist!Force UILabel, um 3 Zeilen aufzunehmen

Meine erste Idee von einem Workaround ist, die Höhe des Etiketts zu 3X der Textgröße (und dann einige für den Abstand) zu sperren. Gibt es vielleicht eine bessere Lösung? Oder ein anderes Objekt, das ich benutzen könnte?

+0

Ich schlage vor, Screenshots hinzuzufügen, sie werden sehr hilfreich sein, um zu beschreiben, was Sie erreichen möchten. –

+0

Ich brauche ein Label um immer 3 Zeilen darzustellen ... Ist ein Screenshot wirklich nötig? –

+0

Wissen Sie, wo Sie die Linien aufteilen möchten? Können Sie die Zeichenfolge in Teilstrings aufteilen, weil Sie einen Zeilenumbruch erzwingen können, indem Sie '\ r 'zwischen Anführungszeichen setzen (das ist ein Backslash). – Pierce

Antwort

1

Um eine UILabel zu zwingen, drei Linien wie in einem Musik-Player zu übernehmen, müssen Sie nur Zeilenumbrüche mit \n und legen Sie die Linien des Labels bis 3.

Hinzufügen von Zeilenumbrüchen an den entsprechenden Stellen hinzufügen :

var title = "Title" 
var album = "Album" 
var artist = "Artist" 

label.text = "\(title)\n" + 
     "\(album)\n" + 
     "\(artist)\n" 

Rahmen Etikett 3 Zeilen:

label.numberOfLines = 3 // or set this to 4 or higher if the title of the song might exceed one line 
+0

Das ist eigentlich eine tolle Info! Nicht ganz das, wonach ich gesucht habe. Für den Titel, das Album und den Künstler gibt es separate Bezeichnungen. Ich wollte, dass das Titel-Label des Titels immer die Höhe von 3 Textzeilen hat, und das Album/der Künstler sind in einer Zeile gesperrt. Die Problemumgehung, die ich verwendet habe, besteht darin, die Höhe auf etwas mehr als das Dreifache der Höhe des Textes zu fixieren (bei 24-Punkt-Schriftgröße betrug sie 86 Punkte). –

Verwandte Themen