2015-07-21 28 views
8

I mają następujące kod widoku tabeli komórki Swiftprzestrzeń jest usuwane z końca ciąg - UILabel Swift

let rcap = cell.viewWithTag(613) as! UILabel 
    rcap.text = "Capacity: \(room.capacity) " // I added space at the end 

Przestrzeń jest usuwany na końcu, kiedy wyświetlany na ekranie.

Jeśli dodaję spację na początku łańcucha, nie ma problemu.

Obecnie używam to „kropka” hack, ale to nie jest wystarczająco dobre: ​​

rcap.text = "Capacity: \(room.capacity) ." 

Jakieś pomysły?

Próbowałem również:

rcap.text = "Capacity: \(room.capacity) " + " " 
+0

To miło. Chciałbym mieć większą kontrolę nad ilością przestrzeni, ale to miłe podejście na chwilę! –

+0

ok ... Myślę, że '\ t 'działa, ale z małą ilością miejsca. –

+0

Byłoby interesujące wiedzieć, dlaczego przestrzeń końcowa jest ważna. Być może istnieje inne rozwiązanie twojego problemu. –

Odpowiedz

21

Dodanie ograniczenia do etykiety wydaje się lepszym rozwiązaniem dla mnie. Umożliwia zdefiniowanie wyraźnej odległości między etykietą a marginesem komórki widoku tabeli. Szerokość spacji zależy od czcionki i może nawet ulec zmianie, jeśli tekst na etykiecie zostanie skurczony, powodując brak wyrównania tekstu w widoku tabeli .

Mimo, że można zapobiec spacją od bycia usunięty przez dodanie "ZERO WIDTH NON-JOINER" charakter (U + 200C):

rcap.text = "Capacity: \(room.capacity) \u{200c}" 

Ale uważam, że bardziej jako " podstęp "niż właściwe rozwiązanie problemu .

Aktualizacja: Wydaje się, że ten „trick” nie działa dłużej w iOS 10 więc ograniczenie układ powinien być stosowany zamiast, jak pierwotnie sugerowano.

+0

Uwielbiam to! Dzięki ! –

+2

To nie działa dla mnie z Swift 3 – onemoreanimal

+0

@onemoreanimal: Jak to "nie działa"? Czy to się nie kompiluje? Czy daje nieoczekiwany rezultat? –

0
rcap.text = String.localizedStringWithFormat("Capacity: %@ ", rrom.capacity) 

try powyżej kod może to działa

+0

wygląda jak włamanie. –

+2

To spowodowało błąd, niestety –

+0

, pokój. Pojemność, który typ zmiennej –