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];