我正在使用UITableView在我的iOS应用中显示一些数据。问题是,cell.textLabel.text
和cell.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;
我唯一能想到的就是做一个循环来生成所有空间的位置,然后找到最接近中途的空间。
这是两张图片,第一张是如果我们没有对文字进行任何格式化的话。第二个是如果有格式化的话。
或者有更好的方法来格式化文本吗?
答案 0 :(得分:1)
你想要达到的目标是什么? UILabel的默认行为不够好吗?
不确定它是否有帮助,但是您可以通过调用sizeWithFont:constrainedToSize:
上的NSString
来获取完整字符串的大小,并使用它来查看字符串是否适合...
如果那不是您的意思,请解释:)