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.