Lepszą odpowiedzią jest ta z metodą rozszerzenia .withTraits () z @Maksymilian Wojakowski
No
proszę pana, jak ustawić pogrubienie stylu pola tekstowego bez deklarowania celu rozmiaru c
Ramani Hitesh
3
Jest to problematyczne, ponieważ używasz stałej nazwy czcionki. Ponieważ może się to zmienić, nie jest to dobre rozwiązanie. Odpowiedź Maksymiliana Wojakowskiego jest lepsza i dużo bardziej elastyczna.
Ray Wojciechowski
274
Nie próbuj bawić się nazwami czcionek. Używając deskryptora czcionki, nie potrzebujesz nazw:
UILabel* label =[[UILabel alloc] init];// use your label object instead of thisUIFontDescriptor* fontD =[label.font.fontDescriptor
fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold|UIFontDescriptorTraitItalic];
label.font =[UIFont fontWithDescriptor:fontD size:0];
Nie wiem, dlaczego to nie otrzymało więcej głosów! W przypadku czcionek, w których nie ma stylu pogrubienia ani kursywy, jest to świetne!
Chris Prince,
4
Ahhh. Rozumiem, dlaczego może to nie jest tak popularne. Dostępne tylko w iOS7 i nowszych ...
Chris Prince
3
Nie wiem, czy należy to uwzględnić w ramach umowy o zachowaniu poufności, ale w przypadku materiału siewnego Xcode6 i iOS8 GM otrzymuję z powrotem deskryptor czcionki zerowej dla czcionki niestandardowej, ponieważ nie było to zerowe w systemie iOS7.
Chris Prince,
@Maksymilian czy możemy odrzucić tę metodę gdzieś w wielu etykietach, np .: uitableview
Majid Bashir
2
Tylko krótka uwaga, ponieważ ta odpowiedź jest bardzo pomocna: return withTraits(.TraitBold, .TraitCondensed)prawdopodobnie powinno return withTraits(.TraitBold, .TraitItalic)pasować do nazwy funkcji.
Ale oto ważne pytanie, poza użyciem fontWithName: @ "Arial-Light", jak określić inne wagi na zrzucie ekranu? Wszystko wyświetla boldSystemFontSize (z: __), ale co, jeśli ktoś chce lekkie lub ultralekkie?
Dave G,
6
Mam ten sam problem, który wymaga zastosowania pogrubienia i kursywy na etykiecie i przycisku. Aby osiągnąć ten efekt, możesz po prostu użyć następującego kodu:
Jak już wspomniano w tych odpowiedziach, potrzebujesz tylko odpowiedniej nazwy czcionki . Uważam, że iOSFonts.com jest najbardziej pomocnym źródłem informacji o tym, jakiej nazwy należy użyć.
Świetny zasób! Przejrzałem go na swoim urządzeniu z systemem iOS i znalazłem dobrze wyglądającą czcionkę, a następnie użyłem „fontWithName”, aby uzyskać jej egzemplarz.
Chociaż odpowiedź udzielona przez @tolbard jest niesamowita i działa dobrze!
Wydaje mi się, że tworzenie rozszerzenia czegoś, co można osiągnąć w jednej linii kodu, byłoby przesadą.
Możesz uzyskać pogrubienie i kursywę dla tego samego tekstu w swoim label, ustawiając właściwość czcionki, UIFontDescriptorjak pokazano poniżej w poniższym przykładzie, używając Swift 4.0 :
Często pogrubiony tekst jest traktowany jako architektura informacji na innym poziomie, a zatem nie ma pogrubionego i regularnego w jednej linii, więc można go podzielić na dwie etykiety / textViews, jedną zwykłą i pogrubioną kursywą. I użyj edytora, aby wybrać style czcionek.
Odpowiedzi:
Istnieje lista nazw czcionek, które można ustawić zamiast atrybutu „fontWithName”. Link znajduje się tutaj
źródło
Nie próbuj bawić się nazwami czcionek. Używając deskryptora czcionki, nie potrzebujesz nazw:
size:0
oznacza „zachowaj rozmiar bez zmian”W Swift wypróbuj następujące rozszerzenie:
Następnie możesz użyć tego w ten sposób:
lub nawet dodaj dodatkowe cechy, takie jak Condensed:
Aktualizacja dla Swift 4:
Użyj go w następujący sposób:
myLabel.font = myLabel.font.bold
lub
myLabel.font = myLabel.font.italic
lub
myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])
Aktualizacja dla Swift 5
źródło
return withTraits(.TraitBold, .TraitCondensed)
prawdopodobnie powinnoreturn withTraits(.TraitBold, .TraitItalic)
pasować do nazwy funkcji.@Edinator spójrz na to ..
użyj dowolnego z powyższych w dowolnym momencie
źródło
Możesz ustawić dowolny styl, rodzinę i rozmiar czcionki dla etykiety, klikając literę „T” w polu Czcionka .
źródło
Mam ten sam problem, który wymaga zastosowania pogrubienia i kursywy na etykiecie i przycisku. Aby osiągnąć ten efekt, możesz po prostu użyć następującego kodu:
źródło
Dzięki domyślnej czcionce systemu iOS 7 będziesz używać helvetica neue bold, jeśli chcesz zachować domyślną czcionkę systemu.
Lub możesz to po prostu nazwać:
źródło
Szybki 3
Pogrubienie:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Italski:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
źródło
możesz również użyć tej pogrubionej czcionki etykiety / przycisku
źródło
Zrobiłem wariację odpowiedzi Maksymiliana Wojakowskiego, w której możesz dodać lub usunąć cechę (-y)
przykład
przydaje się przy ponownym użyciu komórki i chcesz usunąć kursywę, którą umieściłeś na etykiecie w poprzedniej komórce
źródło
Niedawno napisałem wpis na blogu o ograniczeniach API UIFont i sposobach ich rozwiązania. Możesz to zobaczyć tutaj
Dzięki kodowi, który tam podaję, możesz uzyskać pożądany UIFont tak łatwo, jak:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
A następnie ustaw go na swój UILabel (lub cokolwiek) za pomocą:
myLabel.font = myFont;
źródło
Jak już wspomniano w tych odpowiedziach, potrzebujesz tylko odpowiedniej nazwy czcionki . Uważam, że iOSFonts.com jest najbardziej pomocnym źródłem informacji o tym, jakiej nazwy należy użyć.
źródło
Przykład pogrubiony tekst:
Przykładowy tekst kursywą:
źródło
Chociaż odpowiedź udzielona przez @tolbard jest niesamowita i działa dobrze!
Wydaje mi się, że tworzenie rozszerzenia czegoś, co można osiągnąć w jednej linii kodu, byłoby przesadą.
Możesz uzyskać pogrubienie i kursywę dla tego samego tekstu w swoim
label
, ustawiając właściwość czcionki,UIFontDescriptor
jak pokazano poniżej w poniższym przykładzie, używając Swift 4.0 :Inne opcje obejmują:
Aby uzyskać więcej informacji o tym, co oznaczają te cechy symboliczne? odwiedź tutaj
źródło
Aktualizacja wspaniałej odpowiedzi Maksymiliana Wojakowskiego na Swift 3
źródło
To jest bardzo proste. Oto kod.
To ci pomoże.
źródło
Chcę tylko o tym wspomnieć,
Mają inny wynik ...
źródło
Często pogrubiony tekst jest traktowany jako architektura informacji na innym poziomie, a zatem nie ma pogrubionego i regularnego w jednej linii, więc można go podzielić na dwie etykiety / textViews, jedną zwykłą i pogrubioną kursywą. I użyj edytora, aby wybrać style czcionek.
źródło
Dzięki Swift 5
źródło