如何找到未知字符串的CGSize,我知道它的最大字符数但不是确切的字符串?
我知道您可以使用" sizeWithFont"来计算特定NSString的大小。 NSString上的方法如下:
UIFont * font = [UIFont systemFontOfSize:15];
CGSize stringSize = [aString sizeWithFont:font];
CGFloat width = stringSize.width;
但是当你不知道确切的字符串并且只知道字符串可能包含的字符数时,我正在寻找一种方法。
答案 0 :(得分:0)
我认为没有办法。
为什么需要传递字符串?
解决此问题
UIFont * font = [UIFont systemFontOfSize:15]; CGSize stringSize = [@"WWWWW"sizeWithFont:font]; // 5 times 'W' CGFloat width = stringSize.width;
现在您将获得最大宽度概率,这允许所有其他字符串概率。
这只是一种解决方法,我认为iOS SDK中没有确切的解决方案。
答案 1 :(得分:0)
只有在您不知道字符串的确切字符时才能估算CGSize。 最糟糕的估计可能是用“M”或“W”字符填充整个字符串,因为我认为这应该是大多数字体中最宽的字符:
int charCount = 10;
NSString *testString = @"";
for (int i = 0; i < charCount; i++) {
testString = [testString stringByAppendingString:@"M"];
}
您还可以通过添加“i”-chars来估算最佳情况。您应该进行大量测试,以找到在大多数情况下效果最佳的角色。