Jak mogę obliczyć liczbę linii UILabel o stałej szerokości i danym tekście?Jak mogę obliczyć liczbę linii UILabel o stałej szerokości?
Odpowiedz
Kod ten zakłada, że label
ma żądany tekst, a jego ramka jest już ustawiona na żądaną szerokość.
- (int)lineCountForLabel:(UILabel *)label {
CGSize constrain = CGSizeMake(label.bounds.size.width, FLT_MAX);
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:constrain lineBreakMode:UILineBreakModeWordWrap];
return ceil(size.height/label.font.lineHeight);
}
Aktualizacja:
Jeśli chcesz to określić wymaganą wysokość dla etykiety na podstawie jego tekstu i aktualnej szerokości, a następnie zmienić na:
- (CGSize)sizeForLabel:(UILabel *)label {
CGSize constrain = CGSizeMake(label.bounds.size.width, FLT_MAX);
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:constrain lineBreakMode:UILineBreakModeWordWrap];
return size;
}
Zwracany size
to właściwa szerokość i wysokość, które mają zawierać etykietę.
Twoje pytanie dotyczące obliczania liczby linii. Czy chcesz naprawdę wymaganą wysokość (w punktach)? – rmaddy
jak napisałeś liczbę linii równą wysokości podzielonej przez linię wysokości. Chciałem znać liczbę linii, aby obliczyć prawidłową wysokość mojej etykiety przy zachowaniu stałej szerokości. – Alexis
faktycznie twoje rozwiązanie działa dobrze. Dzięki! – Alexis
Pierwszy uzyskać wysokość etykiety od wielkości etykiet za pomocą constrainedSize
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:UILineBreakModeWordWrap];
CGFloat labelHeight = labelSize.height;
raz masz wysokość etykiety następnie sprawdzić liczbę linii z rozmiaru czcionki gdzie fontsize
jest rozmiar używasz dla swojej etykieta. na przykład może to być 10 lub w zależności od wymagań
CGSize sizeOfText = [label.text sizeWithFont:label.font
constrainedToSize:label.frame.size
lineBreakMode:UILineBreakModeWordWrap];
int numberOfLines = sizeOfText.height/label.font.pointSize;
jak mogę poprawić szerokość? – Alexis
Dzielenie przez fontSize jest wspaniałe, dzięki. –
przestarzałe w iOS 7 –
Można obliczyć wysokość pionowego niezbędne do wyświetlania ciąg pomocą sizeWithFont: constrainedToSize: sposób na NSString. Biorąc pod uwagę ten rozmiar, można zmienić rozmiar etykiety, aby wyświetlić cały ciąg.
- 1. Jak znaleźć liczbę linii UILabel
- 2. ustaw maksymalną liczbę linii uilabel
- 3. Utrzymaj tabelę o stałej szerokości
- 4. Pandy: histogram o stałej szerokości
- 5. Importuj plik danych o stałej szerokości bez separatora linii
- 6. Jak pozostawić wyrównanie łańcucha o stałej szerokości?
- 7. Android: czcionka o stałej szerokości w AlertDialog
- 8. Litery integerowe o stałej szerokości w C++?
- 9. Którą czcionkę o stałej szerokości używa przeglądarka?
- 10. Chmura tagów sortowania i pozycjonowania w div o stałej szerokości
- 11. Jak odczytać plik tekstowy formatu o stałej szerokości w pandach?
- 12. Jak zawijać tekst przycisku html o stałej szerokości
- 13. Wymuszanie czcionki o stałej szerokości w stałej szerokości przy użyciu CSS
- 14. Podział linii w rozpiętości o określonej szerokości?
- 15. pliki Parse stałej szerokości
- 16. stałej szerokości zmiennoprzecinkowy format numeru
- 17. UILabel wykrywanie linii podziału
- 18. Pandy Pythona, zapisz DataFrame do pliku o stałej szerokości (to_fwf?)
- 19. Czy istnieje typ bool o stałej szerokości w standardowym C++?
- 20. Jak mogę obliczyć całkowitą liczbę słów i znaków w textView?
- 21. Liczby zmiennoprzecinkowe o stałej szerokości w C/C++
- 22. Wyrównanie elementów za pomocą przestrzeni stałej (o zmiennej szerokości)
- 23. Tworzenie pliku o stałej szerokości w języku C#
- 24. Czy iOS ma wbudowaną czcionkę o stałej szerokości?
- 25. Czytaj stałej szerokości plik tekstowy
- 26. Jak wygładzić dane i obliczyć gradient linii?
- 27. Jak mogę obliczyć liczbę lat między dwiema datami?
- 28. procentowe szerokości DIV obserwowani przez stałej szerokości div
- 29. Nie można obliczyć szerokości ukrytego elementu div
- 30. Tabela HTML - tabela o szerokości 100%, kombinacja stałej szerokości i kolumn kolumn UNIFORM
http://stackoverflow.com/questions/4172615/how-to-find-uilabels-number-of-lines – Sunkas
już wypróbowany, nie działa – Alexis