Jak uzyskać rozmiar i nazwę czcionki UILabel?


105

Mam UILabel, dla którego ustawiłem rozmiar i nazwę czcionki w Interface Builder. Teraz muszę odczytać wartości obu w moim ViewController.

W jaki sposób mogę to zrobić?


Ta metoda została wycofana w systemie iOS7, spójrz na ten artykuł stackoverflow.com/questions/19128797/ ...
Maria

Odpowiedzi:


254

Dodaj właściwość do pliku .h kontrolera widoku:

@property (nonatomic, retain) IBOutlet UILabel *label;

Połącz etykietę z tym IBOutlet w gniazdach "Właściciel pliku" w Interface Builder. Jeśli nie używasz ARC, upewnij się, że zwolniłeś go w -dealloc

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

Następnie, aby uzyskać nazwę i rozmiar czcionki, wystarczy

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;

3
Nie działa. Mogę w nim pisać tekst, ale fontName i pointSize są puste.
Tim

Czy masz na myśli, że możesz programowo zmienić tekst etykiety, ale nie możesz uzyskać dostępu do fontName i pointSize? Zredagowałem powyższą odpowiedź, aby uwzględnić etykietę własną, zamiast tylko etykiety, ponieważ nie wspomniałem o tworzeniu zmiennej instancji dla etykiety.
Ned

Upewnij się również, że podłączyłeś etykietę w Interface Builder z IBOutletem utworzonym w File's Owner (kontroler widoku).
Ned

2
Ach, zapomniałem połączenia w IB z właścicielem pliku.
Tim


15

Wartość Pointsize nie jest rozmiarem czcionki używanym we właściwości size UIFont. Powiedz, jeśli ustawisz rozmiar czcionki kreatora interfejsu na 14 i wydrukujesz rozmiar pointSize, który otrzymasz tylko 11.


Wydaje się, że teraz działa. Jeśli myLabel.font.pointSize
ustawię

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.