2012-10-16 16 views
82

Ecco il mio codice:UILineBreakModeWordWrap è deprecato

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

Ho ricevuto un avviso che UILinebBreakModeWordWrap è deprecato in iOS 6.

risposta

202

È necessario utilizzare NSLineBreakByWordWrapping in iOS 6

Per il vostro codice di provare questo :

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 esempio su un'etichetta sarebbe:

[label setLineBreakMode:NSLineBreakByWordWrapping]; 

Invece di

label.lineBreakMode = UILineBreakModeWordWrap; 
+3

Ahhh le piccole cose – Drakesinmoue

+0

Thank you suo lavoro .. :) – kishore

+1

Perché Apple ha appena cambiato il nome di esso? Qual è lo scopo? –

14

Per mantenere la compatibilità a ritroso, è possibile creare una macro, come di seguito:

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

Perché Xcode segnala ancora gli avvertimenti se la Macro è presente? –

+0

Hai un SDK min <= ios 6? usi C-rapido o oggettivo? –

+0

SDK è 9.2, L'obiettivo minimo è ios7, Obj-C –