sizeWithFont: ConstrainedToSize: lineBreakMode: method is deprecated in iOS 7

Fullmetal_Alchemist_Fan

sizeWithFont: ConstrainedToSize: lineBreakMode: method is deprecated in iOS 7 and I'm a little unsure how to handle this exactly. After a little of research on the internet I found that there's a new method for handling this, which is:

[txt drawWithRect: options: attributes: context:]

This is the method that I am currently attempting to run:

+ (CGSize)textSizeForText:(NSString *)txt
{
    CGFloat width = [UIScreen mainScreen].applicationFrame.size.width * 0.75f;
    CGFloat height = MAX([JSBubbleView numberOfLinesForMessage:txt],
                         [txt numberOfLines]) * [JSMessageInputView textViewLineHeight];


    return [txt sizeWithFont:[JSBubbleView font]
           constrainedToSize:CGSizeMake(width - kJSAvatarSize, height + kJSAvatarSize)
               lineBreakMode:NSLineBreakByWordWrapping];

}

But I'm having a hard time converting it to the new method. Mainly with the lineBreakMode: which is nowhere in the new method. Any ideas?

Xu Yin

in the new method, for line break, you have to create a NSMutableParagraphStyle Style first:

  NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 
  paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 

Then simply use the new method by passing all the necessary parameters

  CGRect textRect = [text boundingRectWithSize:CGSizeMake(width - kJSAvatarSize, height + kJSAvatarSize)
                                      options:NSStringDrawingUsesLineFragmentOrigin
                                   attributes:@{NSParagraphStyleAttributeName: paragraphStyle.copy}
                                      context:nil];

  return textRect.size;

if you want this to be tide, you can do

  return ([text boundingRectWithSize:CGSizeMake(width - kJSAvatarSize, height + kJSAvatarSize)
                                      options:NSStringDrawingUsesLineFragmentOrigin
                                   attributes:@{NSParagraphStyleAttributeName: paragraphStyle.copy}
                                      context:nil]).size;

Hope that helps

I will add the font attributes in above answer

return ([text boundingRectWithSize:CGSizeMake(width - kJSAvatarSize, height + kJSAvatarSize)
                                      options:NSStringDrawingUsesLineFragmentOrigin
                                   attributes:@{NSParagraphStyleAttributeName: paragraphStyle.copy, NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue" size:14]}
                                      context:nil]).size;

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Replacement for deprecated -sizeWithFont:constrainedToSize:lineBreakMode: in iOS 7?

From Dev

sizeWithFont:constrainedToSize:lineBreakMode: deprecated in iOS7

From Dev

'sizeWithFont:constrainedToSize:lineBreakMode:'is deprecated:

From Dev

Transition from sizewithFont:constrainedToSize:lineBreakMode: for iOS 7 not behaving as expected

From Dev

How to fix 'sizeWithFont:constrainedToSize:lineBreakMode:' is deprecated: warning

From Dev

'sizeWithFont:constrainedToSize:lineBreakMode:' is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithSize:options:attributes:context:

From Dev

IOS 7 sizeWithFont Deprecated

From Dev

IOS 7 sizeWithFont Deprecated

From Java

iOS 7 sizeWithAttributes: replacement for sizeWithFont:constrainedToSize

From Java

Replacement for deprecated sizeWithFont: in iOS 7?

From Dev

Deprecate sizeWithFont: UIFont constrainedToSize:CGSize lineBreakMode:NSLineBreakMode in MBProgressHud

From Dev

Lost with the replacement for deprecated sizeWithFont: in iOS 7

From Dev

CGSize sizeSpace = [@" " sizeWithFont:self.fontHashtag constrainedToSize:rect.size lineBreakMode:self.lineBreakMode];

From Dev

Replacement for sizeWithFont:ForWidth:lineBreakMode:

From Dev

iOS7: method drawMapRect is deprecated

From Dev

Replace the deprecation sizeWithFont:minFontSIze:actualFontSize in ios 7

From Dev

Replace the deprecation sizeWithFont:minFontSIze:actualFontSize in ios 7

From Java

sizeWithFont method is deprecated. boundingRectWithSize returns an unexpected value

From Dev

iOS 7 : 'isa' is deprecated

From Dev

'isConnected' deprecated in iOS 7

From Dev

ios 7 initWithOverlay deprecated

From Dev

Deprecated in iOS7: AudioSessionSetProperty

From Dev

Alternative to deprecated AudioSessionGetProperty, for iOS 7

From Dev

iOS 7 - UIPopoverController : deprecated arrows?

From Dev

MKPolylineView initWithPolyLine: is deprecated in iOS 7

From Dev

Is showFromTabBar method deprecated in ios 8?

From Dev

iOS7's deprecation of NSString's drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselineAdjustment:

From Dev

How to use drawInRect:withAttributes: instead of drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment: in iOS 7

From Dev

reportAchievementWithCompletionHandler deprecated in iOS7 but replacement not specified

Related Related

  1. 1

    Replacement for deprecated -sizeWithFont:constrainedToSize:lineBreakMode: in iOS 7?

  2. 2

    sizeWithFont:constrainedToSize:lineBreakMode: deprecated in iOS7

  3. 3

    'sizeWithFont:constrainedToSize:lineBreakMode:'is deprecated:

  4. 4

    Transition from sizewithFont:constrainedToSize:lineBreakMode: for iOS 7 not behaving as expected

  5. 5

    How to fix 'sizeWithFont:constrainedToSize:lineBreakMode:' is deprecated: warning

  6. 6

    'sizeWithFont:constrainedToSize:lineBreakMode:' is deprecated: first deprecated in iOS 7.0 - Use -boundingRectWithSize:options:attributes:context:

  7. 7

    IOS 7 sizeWithFont Deprecated

  8. 8

    IOS 7 sizeWithFont Deprecated

  9. 9

    iOS 7 sizeWithAttributes: replacement for sizeWithFont:constrainedToSize

  10. 10

    Replacement for deprecated sizeWithFont: in iOS 7?

  11. 11

    Deprecate sizeWithFont: UIFont constrainedToSize:CGSize lineBreakMode:NSLineBreakMode in MBProgressHud

  12. 12

    Lost with the replacement for deprecated sizeWithFont: in iOS 7

  13. 13

    CGSize sizeSpace = [@" " sizeWithFont:self.fontHashtag constrainedToSize:rect.size lineBreakMode:self.lineBreakMode];

  14. 14

    Replacement for sizeWithFont:ForWidth:lineBreakMode:

  15. 15

    iOS7: method drawMapRect is deprecated

  16. 16

    Replace the deprecation sizeWithFont:minFontSIze:actualFontSize in ios 7

  17. 17

    Replace the deprecation sizeWithFont:minFontSIze:actualFontSize in ios 7

  18. 18

    sizeWithFont method is deprecated. boundingRectWithSize returns an unexpected value

  19. 19

    iOS 7 : 'isa' is deprecated

  20. 20

    'isConnected' deprecated in iOS 7

  21. 21

    ios 7 initWithOverlay deprecated

  22. 22

    Deprecated in iOS7: AudioSessionSetProperty

  23. 23

    Alternative to deprecated AudioSessionGetProperty, for iOS 7

  24. 24

    iOS 7 - UIPopoverController : deprecated arrows?

  25. 25

    MKPolylineView initWithPolyLine: is deprecated in iOS 7

  26. 26

    Is showFromTabBar method deprecated in ios 8?

  27. 27

    iOS7's deprecation of NSString's drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselineAdjustment:

  28. 28

    How to use drawInRect:withAttributes: instead of drawAtPoint:forWidth:withFont:fontSize:lineBreakMode:baselineAdjustment: in iOS 7

  29. 29

    reportAchievementWithCompletionHandler deprecated in iOS7 but replacement not specified

HotTag

Archive