UILineBreakModeWordWrap ist veraltet


83

Hier ist mein Code:

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

Ich erhalte eine Warnung, dass UILinebBreakModeWordWrap in iOS 6 veraltet ist.

Antworten:


204

Sie müssen NSLineBreakByWordWrappingin iOS 6 verwenden

Versuchen Sie für Ihren Code Folgendes:

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

Ein Beispiel auf einem Etikett wäre:

[label setLineBreakMode:NSLineBreakByWordWrapping];

Anstatt

label.lineBreakMode = UILineBreakModeWordWrap;

1
Warum hat Apple gerade den Namen geändert? Was ist der Zweck ?
Paul Brewczynski

14

Um die Abwärtskompatibilität aufrechtzuerhalten, können Sie ein Makro wie folgt erstellen:

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

Warum kennzeichnet Xcode die Warnungen immer noch, wenn das Makro vorhanden ist?
William GP

Haben Sie min SDK <= ios 6? Verwenden Sie Swift oder Objective-C?
Mihriban Minaz

SDK ist 9,2, Min Ziel ist ios7, Obj-C
William GP

Verwenden Sie dann NSLineBreakByWordWrapping direkt.
Mihriban Minaz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.