UILineBreakModeWordWrap est obsolète


83

Voici mon code:

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

Je reçois un avertissement indiquant que UILinebBreakModeWordWrap est obsolète dans iOS 6.

Réponses:


204

Vous devez utiliser NSLineBreakByWordWrappingdans iOS 6

Pour votre code, essayez ceci:

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 exemple sur une étiquette serait:

[label setLineBreakMode:NSLineBreakByWordWrapping];

Au lieu de

label.lineBreakMode = UILineBreakModeWordWrap;

1
Pourquoi Apple vient de changer de nom? Quel est le but?
— Paul Brewczynski

14

Pour maintenir la compatibilité descendante, vous pouvez créer une macro comme ci-dessous:

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

Pourquoi Xcode signale-t-il toujours les avertissements si la macro est présente?
— William GP

Avez-vous min SDK <= ios 6? utilisez-vous swift ou objective-C?
— Mihriban Minaz

Le SDK est de 9,2, la cible minimale est ios7, Obj-C
— William GP

Ensuite, utilisez directement NSLineBreakByWordWrapping.
— Mihriban Minaz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.