Як я можу отримати розмір шрифту та назву шрифту UILabel?


105

У мене є UILabel, який я встановив розмір шрифту та назву шрифту за допомогою Interface Builder. Тепер мені потрібно прочитати значення обох у моєму ViewController.

Як я можу це зробити?


Цей метод застарілий iOS7, подивіться цю статтю stackoverflow.com/questions/19128797/…
Марія

Відповіді:


254

Додайте властивість до .h-файлу контролера перегляду:

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

Пов’яжіть мітку з цим IBOutlet у відділеннях "Власник файлу" в Interface Builder. Якщо ви не використовуєте ARC, переконайтеся, що ви звільнили його в -dealloc

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

Тоді, щоб отримати назву та розмір шрифту, все що вам потрібно

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

3
Не працює. Я можу написати текст у ньому, але fontName та pointSize є нульовим.
Тім

Ви маєте на увазі, що ви можете програмно змінити текст етикетки, але ви не можете отримати доступ до шрифтаName і pointSize? Я редагував вищевказану відповідь, щоб включати self.label, а не просто мітку, оскільки не згадував про створення змінної примірника для label.
Неділя

Також переконайтеся, що ви підключили мітку в Interface Builder за допомогою IBOutlet, який ви зробили у власника файлу (контролер перегляду).
Неділя

2
Ах, я забув зв’язок у IB із власником файлу.
Тім


15

Значення Pointsize не є розміром шрифту, використовуваним у властивості розміру UIFont. Скажіть, якщо ви встановите розмір шрифту для розробника інтерфейсу до 14 і зробите друк точки розміру, ви отримаєте лише 11.


Здається, зараз це працює. Якщо я встановив розмір шрифту мітки в редакторі інтерфейсів / редакторах до 17 ... myLabel.font.pointSizeповертається 17.
Дерек Сойке

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.