UILineBreakModeWordWrap已被弃用。

83

以下是我的代码:

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

我收到一个警告,说在iOS 6中UILineBreakModeWordWrap已被弃用。

2个回答

205

你需要在iOS 6中使用 NSLineBreakByWordWrapping

针对你的代码,请尝试以下内容:

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;

1
为什么苹果公司刚刚更改了它的名称?这样做的目的是什么? - Paweł Brewczynski

14

为保持向后兼容性,您可以创建以下宏:

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

为什么如果宏已经存在,Xcode仍然会标记警告? - William GP
你的最小SDK版本是否为iOS 6或以下?你使用Swift还是Objective-C? - Mihriban Minaz
SDK版本为9.2,最低支持的iOS版本为7,使用的编程语言为Obj-C。 - William GP
然后直接使用NSLineBreakByWordWrapping。 - Mihriban Minaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接