2012-10-16 23 views
82

Oto mój kod:UILineBreakModeWordWrap jest przestarzała

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

dostaję ostrzeżenie, że UILinebBreakModeWordWrap jest przestarzałe w iOS 6.

Odpowiedz

202

Trzeba użyć NSLineBreakByWordWrapping w iOS 6

Dla kod spróbować :

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

przykład na etykiecie będzie:

[label setLineBreakMode:NSLineBreakByWordWrapping]; 

Zamiast

label.lineBreakMode = UILineBreakModeWordWrap; 
+3

ahhh małe rzeczy – Drakesinmoue

+0

Dziękuję swoją pracę .. :) – kishore

+1

Dlaczego Apple właśnie zmieniło nazwę tego? Jaki jest cel? –

14

celu zachowania kompatybilności wstecznej, można utworzyć makro jak poniżej:

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

Dlaczego Xcode nadal sygnalizuje ostrzeżenia, jeśli znajduje się tam Makro? –

+0

Czy masz min SDK <= ios 6? używasz szybkiego lub obiektywnego C? –

+0

SDK to 9.2, Min target jest ios7, Obj-C –

Powiązane problemy