用'\ n'拆分一个字符串,将其插入UITableViewCell并获得高度

时间:2012-03-05 14:27:04

标签: ios uitableview uilabel multiline

我正在使用最新的SDK和XCode 4.2开发iOS 4应用程序。

我使用网络服务来检索一些文本数据。我不知道它的长度所以我需要将这些字符串拆分为适合自定义UITableViewCell

此自定义UITableViewCell将包含UILabel。此标签将填充从Web服务检索到的文本。

文本将是国家/地区名称:西班牙,法国,美国,意大利等。我将处理此名称以将其附加到唯一字符串。我将这样做:“西班牙 - 法国 - 美国 - ......”

我的一个问题是这条线可能太长了,我需要将它分成线以适合UILabel宽度。我已经解决了这个问题,如果字符串将比UILabel宽度大,我每次添加' - '时都会检查。所以,我会有一个这样的字符串:“西班牙 - 法国\ nUSA - ......”。

确定。现在,我有一个 \ n 的字符串,适合UILabel。因此,我需要修改UITableViewCell高度以适应UILabel高度。

但是,当我使用[NSString sizeWithFont:[UIFont systemFontOfSize:kFontSize]];我没有达到真正的高度时,我总是得到21.0f。

我发现这个tutorial关于UITableView动态高度,但我不知道如何将它与我的代码一起使用。

简而言之,我需要将' - '字符附加到国家/地区名称,但它会返回(因为字符串将在另一行中呈现)通过UILabel),我不必追加' - '。而且,当我收到此字符串时,我必须将自定义UITableViewCell的大小调整为UILabel高度。

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

这是你要找的东西吗?

//create a CGFloat variable
CGFloat _height = 0;
//find out the size for your text. Instead of 255 insert the width of your label
CGSize _textSize = [yourString sizeWithFont:[UIFont systemFontOfSize:kFontSize] constrainedToSize:(CGSize) { 255, 9999 }];
//add the height of that CGSize variable to your height in case you will need to add more values
_height += _textSize.height;
//eventually some other calculations

希望有所帮助