Jak obliczyć szerokość linii tekstu określonej czcionki i rozmiar czcionki?
Mam UILabel, który wyświetla kilka znaków. Na przykład „x”, „y” lub „rpm”. Jak obliczyć szerokość tekstu na etykiecie (nie zajmuje całego dostępnego miejsca)? To jest dla automatycznego układu, gdzie drugi widok będzie miał większy prostokąt ramki, jeśli jest mniej tekstu w tym UILabel. Czy istnieją metody obliczania tej szerokości tekstu, gdy określono UIFont i rozmiar czcionki? Nie ma również podziału wiersza i jest tylko jedna linia.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
13 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Powinien to być rozmiar ekranu „Twój tekst tutaj” w punktach.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
wzbogacenie
http://developer.apple.com/lib ... .html
NSString UIKit. W Twoim przypadku wystarczy najprostsza opcja (ponieważ nie masz etykiet wieloliniowych):
Istnieje kilka odmian tej metody, na przykład niektóre uwzględniają tryby łamania linii lub maksymalne rozmiary.
Anonimowy użytkownik
Potwierdzenie od:
Aktualizacja wrzesień 2019
>
Ta odpowiedź
https://stackoverflow.com/a/52378302/4475605
jest dużo czystszym sposobem na zrobienie tego z nową składnią.
Oryginalna odpowiedź.
>
Oparte na
Doskonała odpowiedź Glen House
https://stackoverflow.com/a/1324429/4475605, Stworzyłem rozszerzenie do obliczania szerokości linii. Jeśli robisz coś takiego, jak ustawienie szerokości , może to ustawić szerokość na podstawie paska tytułu segmentu.
za pomocą:
Anonimowy użytkownik
Potwierdzenie od:
[b]
Swift-5
[/b]>
Użyj intrinsicContentSize, aby znaleźć wysokość i szerokość tekstu.
Będzie działać, nawet jeśli masz interwał użytkownika między liniami typu
"T E X T"
Anonimowy użytkownik
Potwierdzenie od:
Pojawiające się w Swift 4.2
>
let size = text.size(withAttributes:[.font: UIFont.systemFont(ofSize:18.0)])
Anonimowy użytkownik
Potwierdzenie od:
Za pomocą:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
<pre class="lang-swift prettyprint-override">
I będzie używany w ten sposób:
Anonimowy użytkownik
Potwierdzenie od:
szerokość
Tekst S.
obsługa wielu linii
możesz użyć następującego kodu (
Swift 5
):
W ten sam sposób możesz znaleźć wysokość tekstu, jeśli jej potrzebujesz (po prostu przełącz implementację constraintBox):
Lub tu
ujednolicona funkcja
aby uzyskać rozmiar tekstu z obsługą wielu wierszy:
Za pomocą:
Anonimowy użytkownik
Potwierdzenie od:
Swift 3.0+
Używaj go jak ...
Anonimowy użytkownik
Potwierdzenie od: