使用分页符编辑NSString

时间:2013-08-16 20:16:31

标签: ios objective-c uitableview nsstring

我正在使用UITableView在我的iOS应用中显示一些数据。问题是,cell.textLabel.textcell.detailTextLabel.text是可变的。例如,电话号码小区可以是“Phone1”,也可以是“美国或加拿大的免费电话”。在第二种情况下,我想将字符串编辑为类似“美国或加拿大的免费电话”。所以我需要某种方法来获取字符串,确定是否需要剪切,然后切断它。

这是我到目前为止所拥有的:

NSString *stringToCut;  // This would be inputted
NSString *newString;    // This is the resultant string
int maxLength = 15;     // The maximum length.

if ([stringToCut length] > maxLength)
{
    //This is the problem: How do I find a space (" ") near the middle?
    int half = [stringToCut length]/2;
    int locationOfSpaceNearHalf = ???
    newString = [stringToCut subStringFromIndex:locationOfSpaceNearHalf];
    newString = [newString stringByAppendingFormat:@"\n"];
    newString = [newstring stringByAppendingString:[stringToCut subStringFromIndex:locationofSpaceNearHalf+1]];
}
else 
{
    newString = stringToCut;
}

return newString;

我唯一能想到的就是做一个循环来生成所有空间的位置,然后找到最接近中途的空间。

更新

这是两张图片,第一张是如果我们没有对文字进行任何格式化的话。第二个是如果有格式化的话。

bad good

或者有更好的方法来格式化文本吗?

1 个答案:

答案 0 :(得分:1)

你想要达到的目标是什么? UILabel的默认行为不够好吗? 不确定它是否有帮助,但是您可以通过调用sizeWithFont:constrainedToSize:上的NSString来获取完整字符串的大小,并使用它来查看字符串是否适合...

如果那不是您的意思,请解释:)