Jakub
Jakub

Reputation: 13860

iOS Foundation: system font size

I would like to know if systemFontSize in iOS app tableView is always the same for textLabel? This is are depening to style?

For example when I NSLog(@"%f",[UIFont systemFontSize]); I'm getting 14.0. Is this are always the same?

And what's more: How can i change font size without changing the font-family (assuming that i have my own fonts in my plist).

I tried:

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

But UIFont always want for me fontname/family. How can i avoid that and have one font to all my screen and changing only size?

Upvotes: 21

Views: 21087

Answers (3)

Suragch
Suragch

Reputation: 511626

System font sizes are not always the same. Beginning in iOS 7 there is Dynamic Type. Users can set their preferred font size in the system settings. This is the recommended way for apps to get and set their font sizes now.

In the Interface Builder you can choose things like Body or Title 1 under the Font settings. The actual size will be adjusted according to the user's system settings. Programmatically you use UIFont.preferredFont(forTextStyle: ). See this post for more details about doing this in iOS 10 and Swift 3.

See also

Upvotes: 2

Agnit
Agnit

Reputation: 141

Just to add to the above answer. The above methods are members of UIFont class. So to get the default button font size...

float defaultFontSize = [UIFont buttonFontSize]; 

Upvotes: 1

Malek_Jundi
Malek_Jundi

Reputation: 6160

System Fonts are describe as following :

+ (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.

and you can change the font size without the font family like this :

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

Upvotes: 35

Related Questions