IOS Foundation: размер системного шрифта

Я хотел бы знать, поддерживает ли systemFontSize в приложении iOS appView всегда то же самое для textLabel? Это зависит от стиля?

Например, когда я NSLog(@"%f",[UIFont systemFontSize]);, я получаю 14.0. Это всегда одно и то же?

И что еще: как я могу изменить размер шрифта без изменения семейства шрифтов (при условии, что у меня есть свои собственные шрифты в моем plist).

Я пробовал:

cell.textLabel.font = [UIFont fontWithName:@"Sansation-Light" size:12.0];

Но UIFont всегда хочет для меня fontname/family. Как я могу избежать этого и иметь один шрифт для всего экрана и изменять только размер?

Ответ 1

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

+ (CGFloat)labelFontSize;//Returns the standard font size used for labels.
+ (CGFloat)buttonFontSize;//Returns the standard font size used for buttons.
+ (CGFloat)smallSystemFontSize;//Returns the size of the standard small system font.
+ (CGFloat)systemFontSize;//Returns the size of the standard system font.

и вы можете изменить размер шрифта без семейства шрифтов следующим образом:

cell.textLabel.font = [UIFont systemFontOfSize:14];

Ответ 2

Размер системных шрифтов не всегда одинаковый. Начиная с iOS 7 существует Dynamic Type. Пользователи могут установить свой предпочтительный размер шрифта в системных настройках. Это рекомендуемый способ для приложений получить и установить размер шрифта сейчас.

В Interface Builder вы можете выбрать такие вещи, как Body или Title 1 в настройках шрифта. Фактический размер будет скорректирован в соответствии с настройками системы пользователя. Программно вы используете UIFont.preferredFont(forTextStyle: ). См. этот пост для получения более подробной информации об этом в iOS 10 и Swift 3.

См. также

Ответ 3

Просто добавьте к вышеуказанному ответу. Вышеуказанные методы являются членами класса UIFont. Таким образом, чтобы получить размер шрифта кнопки по умолчанию...

float defaultFontSize = [UIFont buttonFontSize];