James Kuang James Kuang - 5 months ago 19
Objective-C Question

Replacement for deprecated sizeWithFont: in iOS 7?

In iOS 7,

sizeWithFont:
is now deprecated. How do I now pass in the UIFont object into the replacement method
sizeWithAttributes:
?

Answer

Use sizeWithAttributes: instead, which now takes an NSDictionary. Pass in the pair with key UITextAttributeFont and your font object like this:

CGSize size = [string sizeWithAttributes:
    @{NSFontAttributeName: [UIFont systemFontOfSize:17.0f]}];

// Values are fractional -- you should take the ceilf to get equivalent values
CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));
Comments