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

98

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

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

SK9
источник

Ответы:

109

К радости сторонников шрифтов во всем мире, в системном интерфейсе iPhone используется Helvetica или ее вариант.

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

В моделях iPod, выпущенных до iPhone, используются либо Chicago, Espy Sans, либо Myriad, а после выпуска iPhone - Helvetica.

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

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

Гэри Уиллоуби
источник
6
В настоящее время это шрифт Helvetica Neue Regular.
Августин
4
Для iOS9 он изменился на Сан-Франциско. См. Developer.apple.com/fonts для получения дополнительной информации.
Freek Sanders,
103

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

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

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

Адам Райт
источник
1
Системный шрифт менять не собираюсь, это плохая идея. Но я хочу его для какого-то html в UIWebView.
SK9 01
Это не меняет системный шрифт - он просто дает вам UIFontэкземпляры системного шрифта с заданными размерами и всегда будет возвращать системные шрифты независимо от будущих обновлений iOS.
Адам Райт
Шрифт, который я вижу в своем UIWebView, мне не похож на Helvetica. Возможно, я ошибаюсь, но установка шрифта для моего представления устраняет мои сомнения.
SK9
«не кодируйте системный шрифт жестко» - хороший или действительно плохой совет, в зависимости от ситуации. Лично мне жаль, что я не запрограммировал Helvetica... сделать это сейчас.
Дэн Розенстарк
Полностью согласен, пожалуйста, не жестко кодируйте. Это должен быть правильный ответ на этот вопрос
Эстеве
16

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

Владимир
источник
как видно из других ответов, это зависит от версии iOS
ericosg
12

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)

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

Связанный

Suragch
источник
11

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

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

Дэн Розенстарк
источник
1
в Swift на iOS 9 я получаю .SFUIText-RegularкакsystemFont.familyName
Daniel
@simpleBob Подробнее: designforhackers.com/blog/apples-new-san-francisco-font
Дэн Розенстарк
8

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

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

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

Perkin Tang
источник
17
UIFont * font = [UIFont systemFontOfSize: 12.0]; <! - получает шрифт по умолчанию
Steven Baughman
Есть более простые методы .. Но +1 за нестандартное
мышление
Выглядит лучше: P [UIFont systemFontOfSize:[UIFont labelFontSize]];См. Мой ответ ниже.
Антон Гаенко
3

Вот некоторые обновления для поддержки 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;
BS
источник
3

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

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

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

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

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

Антон Гаенко
источник
3
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];

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

Рохит сараф
источник
2

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)
Муса Алматри
источник
0
  1. скачать необходимый файл .ttf

  2. добавьте файл .ttf в ресурс пакета копирования, дважды проверьте, добавлен ли файл ttf в ресурс

  3. В info.pllist добавьте имя ttf-файла как есть.

  4. Теперь откройте книгу шрифтов, добавьте файл .ttf в книгу шрифтов, выберите значок информации, там вы найдете имя postscript.

  5. теперь дайте название постскриптума вместо названия шрифта

К.Гоури Манохари
источник
0

Шрифт по умолчанию для iOS - San Francisco. Вы можете обратиться по ссылке для получения дополнительной информации

Сатиш Пасала
источник