Skip to main content

sizeWithFont method is deprecated. Replace with sizeWithAttributes.

Create category that works for both iOS7 and iOS8 or only use sizeWithAttributes.


#import "NSString+StringSizeWithFont.h"

@implementation NSString (StringSizeWithFont)

- (CGSize) sizeWithMyFont:(UIFont *)fontToUse
{
    if ([self respondsToSelector:@selector(sizeWithAttributes:)])
    {
        NSDictionary* attribs = @{NSFontAttributeName:fontToUse};
        return ([self sizeWithAttributes:attribs]);
    }
    return ([self sizeWithFont:fontToUse]);
}


@end

Category call :

    NSString *text= @"Do any additional setup after loading the view, typically from a nib.";
    CGSize fontSize = [text sizeWithMyFont:[UIFont fontWithName:@"Helvetica"
                                                         size:12]];
    
    NSLog(@"Calculate Size with sizeWithAttributes : %f %f", fontSize.height, fontSize.width);
    
    CGSize fontSize1 = [text sizeWithFont:[UIFont fontWithName:@"Helvetica"
                                                           size:12]];
    
    NSLog(@"Calculate Size with sizeWithFont: %f %f", fontSize1.height, fontSize1.width);


OutPut :

015-01-12 11:10:47.348 DemoTest[1149:38359] Calculate Size with sizeWithAttributes : 13.800000 350.871094
2015-01-12 11:10:47.349 DemoTest[1149:38359] Calculate Size with sizeWithFont: 14.000000 351.000000

Comments

  1. Replies
    1. Hello Vinus, Hope you are doing well. Let me know if you have any coding issue...

      Delete

Post a Comment

Popular posts from this blog

iOS9 iTune Upload Error : Invalid Bundle. iPad Multitasking support requires launch story board in bundle

1. Add the UIRequiresFullScreen key to your Xcode project’s Info.plist file and apply the Boolean value YES 2. This will fix one more issue that is coming at the time of iTune upload Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. If your application only using single orientation then use the above keyword in info.plist

Convert Date into ISO formate

Call below function like : [self toStringFromDateTime:[NSDate date]]; - (NSString*)toStringFromDateTime:(NSDate*)datetime {     // Purpose: Return a string of the specified date-time in UTC (Zulu) time zone in ISO 8601 format.     // Example: 2013-10-25T06:59:43.431Z     NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];     //ISO DateFormatter     [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@" UTC "]];     [dateFormatter setDateFormat:@" yyyy-MM-dd'T'HH:mm:SS.SSS'Z' "];     NSString* dateTimeInIsoFormatForZuluTimeZone = [dateFormatter stringFromDate:datetime];     return dateTimeInIsoFormatForZuluTimeZone; }