системный шрифт iPhone - PullRequest
       10

системный шрифт iPhone

94 голосов
/ 01 октября 2010

Как называется системный шрифт по умолчанию на iPhone?

Я хотел бы получить это для настройки UIView.

Ответы [ 11 ]

105 голосов
/ 01 октября 2010

На радость пуристам шрифтов везде система iPhone интерфейс использует Helvetica или вариант его.

Оригинальный iPhone, iPhone 3G и Интерфейс системы iPhone 3GS использует Helvetica. Как впервые отмечено всегда отличный DaringFireball, iPhone 4 использует слегка переработанный шрифт называется "Helvetica Neue". DaringFireball также отмечает, что это изменение связано с iPhone 4 дисплей, а не iOS 4 операционная система и старый iPhone модели под управлением iOS 4 все еще используют Helvetica как системный шрифт.

моделей iPod, выпущенных до iPhone использовать либо Чикаго, Espy Sans, или множество и использовать Helvetica после выпуск iPhone.

С http://www.everyipod.com/iphone-faq/iphone-who-designed-iphone-font-used-iphone-ringtones.html

Для iOS9 он изменился на Сан-Франциско . См. http://developer.apple.com/fonts для получения дополнительной информации.

103 голосов
/ 01 октября 2010

Если вы занимаетесь программной настройкой, не используйте жесткий код системного шрифта. Используйте UIFont systemFontOfSize:, UIFont boldSystemFontOfSize: и UIFont italicSystemFontOfSize ( документация Apple ).

Это стало особенно актуально с iOS 7, которая изменила системный шрифт на Helvetica Neue.

Это стало супер , особенно актуальным после iOS 9, который снова изменил системный шрифт на Сан-Франциско.

15 голосов
/ 01 октября 2010

afaik iPhone по умолчанию использует " Helvetica "

11 голосов
/ 16 января 2016

Swift

Специальный шрифт

Установка определенного шрифта в Swift выполняется следующим образом:

let myFont = UIFont(name: "Helvetica", size: 17)

Если вы не знаете названия, вы можете получить список доступных имен шрифтов, например:

print(UIFont.familyNames())

Или еще более подробный список, подобный этому:

for familyName in UIFont.familyNames() {
    print(UIFont.fontNamesForFamilyName(familyName))
}

Но системный шрифт меняется от версии к версии iOS. Так что было бы лучше получить системный шрифт динамически.

Системный шрифт

let myFont = UIFont.systemFontOfSize(17)

Но у нас есть жестко запрограммированный размер. Что если у пользователя плохие глаза, и он хочет увеличить шрифт? Конечно, вы могли бы сделать настройку в своем приложении, чтобы пользователь изменил размер шрифта, но это будет раздражать, если пользователю придется делать это отдельно для каждого приложения на своем телефоне. Было бы проще сделать одно изменение в общих настройках ...

Динамический шрифт

let myFont = UIFont.preferredFont(forTextStyle: .body)

Ах, теперь у нас есть системный шрифт с выбранным пользователем размером для Стиль текста , с которым мы работаем. Это рекомендуемый способ установки шрифта. Для получения дополнительной информации см. Поддержка динамического типа .

Относящиеся

11 голосов
/ 22 августа 2013

Вы всегда можете использовать

UIFont *systemFont = [UIFont systemFontOfSize:12];
NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);

Ответ:

До iOS 6

 Helvetica Helvetica

iOS 7

.Helvetica Neue Interface .HelveticaNeueInterface-M3

но вы можете просто использовать Helvetica Neue

8 голосов
/ 19 мая 2011

Я не уверен, что есть API для получения имени системного шрифта по умолчанию.Поэтому я просто получаю имя вот так:

    //get system default font
    UILabel *label = [[UILabel alloc] init];        
    fontname = label.font.fontName;
    [label release];

выглядит глупо, но работает.

3 голосов
/ 31 октября 2014
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];

Это даст вам системный шрифт с размером системного шрифта по умолчанию, применяемым к текстам меток по умолчанию.

3 голосов
/ 14 мая 2014

Категория UIFontSystemFonts для UIFont ( UIInterface.h ) предоставляет несколько удобных предопределенных размеров.

@interface UIFont (UIFontSystemFonts)
 + (CGFloat)labelFontSize;
 + (CGFloat)buttonFontSize;
 + (CGFloat)smallSystemFontSize;
 + (CGFloat)systemFontSize;
@end 

Я использую его для чатасообщения (метки), и это хорошо работает, когда мне нужно получить размер текстовых блоков.

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

Удачного кодирования!

3 голосов
/ 15 сентября 2013

Вот обновление для поддержки iOS 7 .Теперь он имеет Dynamic Font Size.

Для всех приложений, поддерживающих «Динамический тип», пользователи могут выбрать размер шрифта в iOS 7, который работает в масштабе всей системы, простозайдя в раздел «Общие» в разделе «Настройки» и выбрав «Размер шрифта».

UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

и список констант, подробное объяснение здесь

NSString *const UIFontTextStyleHeadline;
NSString *const UIFontTextStyleSubheadline;
NSString *const UIFontTextStyleBody;
NSString *const UIFontTextStyleFootnote;
NSString *const UIFontTextStyleCaption1;
NSString *const UIFontTextStyleCaption2;
2 голосов
/ 08 сентября 2017

Swift

Вы должны всегда использовать системные настройки по умолчанию, а не жестко кодировать имя шрифта, потому что шрифт по умолчанию может быть изменен Apple в любое время.

Существует несколько системных шрифтов по умолчанию (обычный, полужирный , курсив ) с различными размерами (метка, кнопка, другие):

let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)

помните, что размер шрифта по умолчанию зависит от целевого вида (метка, кнопка и т. Д.)

Примеры:

let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)
...