Intereting Posts
Как выполнить подзапрос в качестве атрибута с использованием Core Data? Как узнать, сколько памяти занимает структура? Приложение для камеры, такое как поворот экрана и навигация Facebook iOS SDK 3.2 Повторное открытие сеанса всегда сбой Оценить URL-адрес в магазине приложений до публикации приложения Как написать метод init для пользовательского класса UIView с xib-файлом Получите высоту клавиатуры, в то время как ее отклоняют в интерактивном режиме с помощью прокрутки ObjC: Напишите на .plist, оптимизированный способ? Как я могу сделать приложение iDevice с 1-недельным пробным периодом, и после этого требуется, чтобы пользователь заплатил? object-c – Прикрепить UIImage для совместного использования SKProductsRequest вызывает сбой – Cocos2d и In App Purchase Не удалось выполнить команду Linker с кодом выхода. Ошибка возникает после повторного открытия проекта. Преобразование времени с 12-часового формата в формат 24 часа Какой ppi правильный в изображениях iOS4 (нормальный и высокий уровень) Управление памятью! в отношении NSNumber

Размер шрифта UILabel не подходит для жирных шрифтов

Я динамически создаю UIlabels, и для первого ярлыка я использую Bold style.

for (int i = 0; i < vehicles.count; ++i) { CGRect labelRect = CGRectMake(i * (self.frame.size.width / vehicles.count), 3, self.frame.size.width / vehicles.count, 13); UILabel *label = [[UILabel alloc] initWithFrame:labelRect]; label.textColor = thumbColor; label.textAlignment = NSTextAlignmentCenter; label.text = vehicles[i].vehicleClass; UIFont *labelFont; if (i == 0) { labelFont = [UIFont fontWithName:@"Avenir Next-Bold" size:9.0]; } else { labelFont = [UIFont fontWithName:@"Avenir Next" size:9.0]; } label.font = labelFont; [vehiclesLabels addObject:label]; [self addSubview:label]; } 

Но это выглядит так

введите описание изображения здесь

Почему первый ярлык больше?

Для семейных шрифтов «Avenir Next» вы должны использовать эти имена:

AvenirNext-MediumItalic, AvenirNext-Bold, AvenirNext-UltraLight, AvenirNext-DemiBold, AvenirNext-HeavyItalic, AvenirNext-Heavy, AvenirNext-Medium, AvenirNext-Italic, AvenirNext-UltraLightItalic, AvenirNext-BoldItalic, AvenirNext-Regular, AvenirNext-DemiBoldItalic

Изменить Avenir Next-Bold на AvenirNext-Bold и Avenir Рядом с AvenirNext-Regular

Просто вам нужно изменить нижнюю строку кода.

 labelFont = [UIFont fontWithName:@"AvenirNextCondensed-Bold" size:9.0]; 

Для проверки имени семейства шрифтов для этого используется следующий код.

 NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]]; NSArray *fontNames; NSInteger indFamily, indFont; for (indFamily=0; indFamily<[familyNames count]; ++indFamily) { NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]); fontNames = [[NSArray alloc] initWithArray: [UIFont fontNamesForFamilyName: [familyNames objectAtIndex:indFamily]]]; for (indFont=0; indFont<[fontNames count]; ++indFont) { NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]); } } 

Удалите пробелы из имени шрифта, которое оно будет работать для вас

 UIFont *labelFont; if (i == 0) { labelFont = [UIFont fontWithName:@"AvenirNext-Bold" size:9.0]; } else { labelFont = [UIFont fontWithName:@"AvenirNext-Regular" size:9.0]; } label.font = labelFont; 

В вашем текущем коде шрифт не применяется к первой строке в этом массиве. Если вы попытаетесь распечатать журнал для labelfont, это будет nil для i = 0. И если вы печатаете журнал для label.font, вы можете увидеть следующий вывод

 (lldb) po label.font <UICTFont: 0x7fbbb36185a0> font-family: ".SFUIText-Regular"; font-weight: normal; font-style: normal; font-size: 17.00pt 

Чтобы полужирный шрифт работал, попробуйте следующее:

 labelFont = [UIFont fontWithName:@"AvenirNext-Bold" size:9.0]; 

Надеюсь, это поможет.