0

我正在使用 UITableView 在我的 iOS 应用程序中显示一些数据。问题是,cell.textLabel.textandcell.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;

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

更新

这是两张图片,第一张是我们不对文本进行任何格式化时的样子。第二个是如果有格式化会是什么样子。

坏的 好的

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

4

1 回答 1

1

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

如果这不是你的意思,请解释:)

于 2013-08-16T20:22:42.713 回答