UILineBreakModeWordWrap устарел


83

Вот мой код:

CGSize s = [string sizeWithFont:[UIFont systemFontOfSize:20]
               constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, CGFLOAT_MAX) // - 40 For cell padding
                   lineBreakMode:UILineBreakModeWordWrap];

Я получаю предупреждение о том, что UILinebBreakModeWordWrap устарел в iOS 6.

Ответы:


204

Вам нужно использовать NSLineBreakByWordWrappingв iOS 6

Для вашего кода попробуйте следующее:

NSString *string = @"bla";

CGSize s = [string sizeWithFont:[UIFont systemFontOfSize:20]
              constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, CGFLOAT_MAX) // - 40 For cell padding
                  lineBreakMode:NSLineBreakByWordWrapping];

пример на этикетке:

[label setLineBreakMode:NSLineBreakByWordWrapping];

Вместо

label.lineBreakMode = UILineBreakModeWordWrap;

1
Почему Apple только что изменила название? Какая цель?
Paul Brewczynski

14

Для обеспечения обратной совместимости вы можете создать макрос, как показано ниже:

#ifdef __IPHONE_6_0
# define LINE_BREAK_WORD_WRAP NSLineBreakByWordWrapping
#else
# define LINE_BREAK_WORD_WRAP UILineBreakModeWordWrap
#endif

Почему Xcode по-прежнему отмечает предупреждения, если есть макрос?
William GP

У вас есть min SDK <= ios 6? вы используете быстрый или объективный-C?
Mihriban Minaz 03

SDK - 9.2, минимальная цель - ios7, Obj-C
William GP

Затем используйте NSLineBreakByWordWrapping напрямую.
Mihriban Minaz, 04
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.