如何在Xcode 6.0.1中更新下面的代码

时间:2014-09-20 06:40:00

标签: xcode

我是Xcode的新手,我遇到了在新Xcode 6.0.1中转换下面代码的问题。感谢你的帮助,非常感谢你。

NSInteger h2 = [text sizeWithFont:_textView.font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping] .height;

1 个答案:

答案 0 :(得分:0)

它不是Xcode 6.0.1的一个问题,它在ios7中是一个不同的方法sizeWithFont。这个方法的替换如下

//Following is macro for checking ios6 or 7 OS.
    #define isIOS6 floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1 
    #define isIOS7 floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1

    //Use following which will work both for ios7 and for ios6 version too

        if (isIOS6) {
                //version <= 6.0

                return [text sizeWithFont:_textView.font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping].height;
            }
            else if (isIOS7) {
                //version for > 6.0

                //Return the calculated height of the Label
                return [_textView boundingRectWithSize:CGSizeMake(_textView.frame.size.width, MAXFLOAT)
                                                      options:NSStringDrawingUsesLineFragmentOrigin
                                                   attributes:@{
                                                                NSFontAttributeName : _textView.font
                                                                }
                                                      context:nil].size.height;

            }