UILineBreakModeWordWrap está en desuso


83

Aquí está mi código:

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

Recibo una advertencia de que UILinebBreakModeWordWrap está en desuso en iOS 6.

Respuestas:


204

Necesitas usar NSLineBreakByWordWrappingen iOS 6

Para su código, intente esto:

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];

un ejemplo en una etiqueta sería:

[label setLineBreakMode:NSLineBreakByWordWrapping];

En vez de

label.lineBreakMode = UILineBreakModeWordWrap;

1
¿Por qué Apple acaba de cambiarle el nombre? Cuál es el propósito ?
Paul Brewczynski

14

Para mantener la compatibilidad con versiones anteriores, puede crear una macro como se muestra a continuación:

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

¿Por qué Xcode todavía marca las advertencias si la macro está allí?
William GP

¿Tiene min SDK <= ios 6? ¿Usas Swift o Objective-C?
Mihriban Minaz

SDK es 9.2, el objetivo mínimo es ios7, Obj-C
William GP

Luego use NSLineBreakByWordWrapping directamente.
Mihriban Minaz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.