换行包装

时间:2013-05-25 23:24:18

标签: iphone ios objective-c ipad

我正在从数组中的许多字符串创建一个长字符串,如下所示:

oneString = @"First Line\n";
for (int i = 0; i < itemsToAdd.count; i ++){
    oneString = [NSString stringWithFormat:@"%@   %@\n", oneString, stringToAdd];
}

这一切都很有效,直到stringToAdd足够长。如果您注意到%@ %@之间的空格,则会将其作为缩进。我添加的大多数字符串都没有换行,但是我想找到一种方法在第一行之后的每一行之前添加空格。

我正在构建这个长字符串的原因是计算它的高度,以便根据此字符串的长度调整tableViewCell的大小。 itemsToAdd是一个可变大小的数组。有时它会是一行,有时会是15行以上。

这是示例输出:

First Line
   Item 1 is good
   Item 2 is fine
   Item 3 is long and it wraps so
it goes like this and it sucks
   Item 4 is fine

2 个答案:

答案 0 :(得分:0)

尝试插入标签空间:

oneString = [NSString stringWithFormat:@"%@%8s\n", oneString, [stringToAdd UTF8String]];

来自how to add tab space into UILabel.text

答案 1 :(得分:0)

您需要以文本呈现系统理解的方式指定缩进,例如,使用NSParagraphStyle。您需要根据应用支持的iOS版本对您的单元格进行一些更改。您可能希望使用第三方标签类或DTCoreText等框架。