sizeWithFont:constrainedToSize:lineBreakMode: deprecated in iOS7

user2650439

I'm updating my app to iOS 7 and finally got it, but there's one thing I can't find a solution for.

In Xcode 4 I used the following method:

#define FONT_SIZE 14.0f
#define CELL_CONTENT_WIDTH 280.0f
#define CELL_CONTENT_MARGIN 10.0f


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; {
    NSString *text = [textA objectAtIndex:[indexPath row]];

    CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);

    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];

    CGFloat height = MAX(size.height, 28.0f);

    return height + (CELL_CONTENT_MARGIN * 2);
}

But I'll get an error when using it in iOS 7:

Use -boundingRectWithSize:options:attributes:context:

I don't know how to convert my earlier version to this new method and it would be great if anyone could help me. Thanks in advance.

Igor Kulagin

sizeWithFont methods were deprecated in iOS7. You should use boundingRectWithSize instead. If you also need to support prior iOS versions then you can use following code:

CGSize size = CGSizeZero;

if ([label.text respondsToSelector: @selector(boundingRectWithSize:options:attributes:context:)] == YES) {
    size = [label.text boundingRectWithSize: constrainedSize options: NSStringDrawingUsesLineFragmentOrigin
                                 attributes: @{ NSFontAttributeName: label.font } context: nil].size;
} else {
    size = [label.text sizeWithFont: label.font constrainedToSize: constrainedSize lineBreakMode: UILineBreakModeWordWrap];
}

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: method is deprecated in iOS 7

From Dev

'sizeWithFont:constrainedToSize:lineBreakMode:'is deprecated:

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

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

From Dev

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

From Dev

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

From Java

iOS 7 sizeWithAttributes: replacement for sizeWithFont:constrainedToSize

From Dev

IOS 7 sizeWithFont Deprecated

From Dev

IOS 7 sizeWithFont Deprecated

From Java

Replacement for deprecated sizeWithFont: in iOS 7?

From Dev

Replacement for sizeWithFont:ForWidth:lineBreakMode:

From Dev

Lost with the replacement for deprecated sizeWithFont: in iOS 7

From Dev

Deprecated in iOS7: AudioSessionSetProperty

From Dev

reportAchievementWithCompletionHandler deprecated in iOS7 but replacement not specified

From Dev

UITabBarItem setFinishedSelectedImage: deprecated in iOS7

From Dev

iOS7: method drawMapRect is deprecated

From Dev

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

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

What should I use instead of deprecated GKLeaderboardViewController in iOS7?

From Dev

GameKit GKMatchMaker inviteHandler deprecated in iOS7, what is the replacement?

From Dev

iOS 7 : 'isa' is deprecated

From Dev

'isConnected' deprecated in iOS 7

From Dev

ios 7 initWithOverlay deprecated

From Dev

How to get the AirPlay device name without using iOS7 deprecated methods

From Dev

Alternative to deprecated AudioSessionGetProperty, for iOS 7

Related Related

  1. 1

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

  2. 2

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

  3. 3

    'sizeWithFont:constrainedToSize:lineBreakMode:'is deprecated:

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

    iOS 7 sizeWithAttributes: replacement for sizeWithFont:constrainedToSize

  10. 10

    IOS 7 sizeWithFont Deprecated

  11. 11

    IOS 7 sizeWithFont Deprecated

  12. 12

    Replacement for deprecated sizeWithFont: in iOS 7?

  13. 13

    Replacement for sizeWithFont:ForWidth:lineBreakMode:

  14. 14

    Lost with the replacement for deprecated sizeWithFont: in iOS 7

  15. 15

    Deprecated in iOS7: AudioSessionSetProperty

  16. 16

    reportAchievementWithCompletionHandler deprecated in iOS7 but replacement not specified

  17. 17

    UITabBarItem setFinishedSelectedImage: deprecated in iOS7

  18. 18

    iOS7: method drawMapRect is deprecated

  19. 19

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

  20. 20

    Replace the deprecation sizeWithFont:minFontSIze:actualFontSize in ios 7

  21. 21

    Replace the deprecation sizeWithFont:minFontSIze:actualFontSize in ios 7

  22. 22

    sizeWithFont method is deprecated. boundingRectWithSize returns an unexpected value

  23. 23

    What should I use instead of deprecated GKLeaderboardViewController in iOS7?

  24. 24

    GameKit GKMatchMaker inviteHandler deprecated in iOS7, what is the replacement?

  25. 25

    iOS 7 : 'isa' is deprecated

  26. 26

    'isConnected' deprecated in iOS 7

  27. 27

    ios 7 initWithOverlay deprecated

  28. 28

    How to get the AirPlay device name without using iOS7 deprecated methods

  29. 29

    Alternative to deprecated AudioSessionGetProperty, for iOS 7

HotTag

Archive