UILineBreakModeWordWrap không được dùng nữa


83

Đây là mã của tôi:

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 cảnh báo rằng UILinebBreakModeWordWrap không được dùng nữa trong iOS 6.

Câu trả lời:


204

Bạn cần sử dụng NSLineBreakByWordWrappingtrong iOS 6

Đối với mã của bạn, hãy thử điều 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];

một ví dụ trên nhãn sẽ là:

[label setLineBreakMode:NSLineBreakByWordWrapping];

Thay vì

label.lineBreakMode = UILineBreakModeWordWrap;

1
Tại sao Apple lại đổi tên nó? Mục đích gì ?
Paul Brewczynski

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

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

Bạn có SDK tối thiểu <= ios 6 không? bạn sử dụng nhanh hay mục tiêu-C?
Mihriban Minaz

SDK là 9,2, mục tiêu tối thiểu là ios7, obj-C
William GP

Sau đó sử dụng trực tiếp NSLineBreakByWordWrapping.
Mihriban Minaz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.