【问题标题】:UILineBreakModeWordWrap is deprecatedUILineBreakModeWordWrap 已弃用
【发布时间】:2012-10-16 12:31:40
【问题描述】:

这是我的代码:

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 中已弃用。

【问题讨论】:

    标签: uilabel deprecated


    【解决方案1】:

    您需要在 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;
    

    【讨论】:

    • 为什么苹果刚刚改了名字?目的是什么?
    【解决方案2】:

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

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

    【讨论】:

    • 如果宏存在,为什么 Xcode 仍然标记警告?
    • 你有最小 SDK
    • SDK 为 9.2,最小目标为 ios7,Obj-C
    • 然后直接使用NSLineBreakByWordWrapping。
    猜你喜欢
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    相关资源
    最近更新 更多