我想知道当设置为矩形内的字体时,字符串会有多少行。有办法做到这一点吗?
我有这段代码,但我试图让它处理得更快一点,因为它在 ScrollView 中被大量使用:
CGSize maximumSize = CGSizeMake(MESSAGE_FRAME.size.width - 16, 1000000);
CGSize expectedSize = [message sizeWithFont:[UIFont fontWithName:@"Crimson" size:15]
constrainedToSize:maximumSize
lineBreakMode:UILineBreakModeWordWrap];
return expectedSize.height;
我知道这会返回行高:
NSLog(@"%f", [[UIFont fontWithName:@"Crimson" size:15] lineHeight]);
因此,如果我可以将其乘以另一个值,它可能会更快。
最佳答案
我想不出替代方案,而且我怀疑是否有一种方案效率更高(毕竟,有什么可能的魔法可以达到行数并避免自动换行计算?)。
无论如何,考虑一下是否需要在 View 滚动时一遍又一遍地完成计算,而不是伤害我们的大脑来减少计算周期。我的猜测是否定的。
我认为加快速度的方法是进行传统的大小计算并缓存结果。
关于iphone - 找出带有矩形字体的字符串的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638131/