2012-10-16 23 views
82

Dưới đây là mã của tôi:UILineBreakModeWordWrap bị phản

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

tôi nhận được một cảnh báo rằng UILinebBreakModeWordWrap bị phản đối trong iOS 6.

Trả lời

202

Bạn cần phải sử dụng NSLineBreakByWordWrapping trong iOS 6

Đối với mã của bạn cố gắng này :

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

ví dụ về nhãn sẽ là:

[label setLineBreakMode:NSLineBreakByWordWrapping]; 

Thay vì

label.lineBreakMode = UILineBreakModeWordWrap; 
+3

Ahhh những điều nhỏ nhặt – Drakesinmoue

+0

Cảm ơn bạn làm việc của mình .. :) – kishore

+1

Tại sao Apple chỉ thay đổi tên của nó? Mục đích gì ? –

14

Để duy trì khả năng tương thích ngược, bạn có thể tạo một macro như sau:

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

Tại sao Xcode vẫn gắn cờ cảnh báo nếu Macro ở đó? –

+0

Bạn có SDK tối thiểu <= ios 6 không? bạn có sử dụng nhanh hay khách quan C? –

+0

SDK là 9,2, Mục tiêu tối thiểu là ios7, Obj-C –

Các vấn đề liên quan