我们有这个功能:
CGSize size = [cell.textLabel.text sizeWithFont:cell.textLabel.font constrainedToSize:CGSizeMake(cellWidth, FLT_MAX)];
我们可以倒掉吗? 我想看看文字,我的字体可以是这个尺寸。 你有什么想法吗?
答案 0 :(得分:1)
你的意思是CTFramesetterSuggestFrameSizeWithConstraints
?假设某些约束条件,它可用于获取文本范围。
答案 1 :(得分:1)
我找到了很好的解决方案:
- (NSString*)stringVisibleInRect:(CGRect)rect inString:(NSString *)string {
NSArray *words = [string componentsSeparatedByString:@" "];
NSString *testString = [[NSString alloc] init];
NSString *visibleString = @"";
for (int i = 0; i < [words count] && [words count] > 0; i++)
{
NSString *newString = (NSString *)[words objectAtIndex:i];
testString =[testString stringByAppendingFormat:@"%@ ",newString];
CGSize maximumSize = CGSizeMake(rect.size.width, 9999);
CGSize stringSize = [testString sizeWithFont:font
constrainedToSize:maximumSize
lineBreakMode:UILineBreakModeWordWrap];
if (stringSize.height > rect.size.height) // || stringSize.width > rect.size.width)
break;
visibleString = testString;
}
words = nil;
return visibleString;
}