2012-10-16 226 views
82

這裏是我的代碼:UILineBreakModeWordWrap已被棄用

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

我得到UILinebBreakModeWordWrap中的iOS 6

回答

202

您需要使用NSLineBreakByWordWrapping在iOS 6中

爲您的代碼試試這個過時的警告:

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

一個標籤上的例子是:

[label setLineBreakMode:NSLineBreakByWordWrapping]; 

而不是

label.lineBreakMode = UILineBreakModeWordWrap; 
+3

唉唉 – Drakesinmoue

+0

謝謝你的工作的小東西.. :) – kishore

+1

爲什麼蘋果剛換了它的名字?目的是什麼? –

14

爲了保持向後兼容性,您可以創建一個宏如下:

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

爲什麼Xcode仍然會標記警告如果宏在那裏? –

+0

你有沒有min SDK <= ios 6?你使用swift還是objective-C? –

+0

SDK是9.2,Min目標是ios7,Obj-C –