我需要用一些文本填写矩形。 rect的大小是固定的。
我使用以下功能:
- (void)drawText:(NSString *)text onView:(UIView *)view inRect:(CGRect)rect
{
UILabel *lbl = [[UILabel alloc] initWithFrame:rect];
lbl.minimumFontSize = 1;
lbl.font = [UIFont systemFontOfSize:30];
[lbl setText:text];
lbl.adjustsFontSizeToFitWidth = YES;
[view addSubview:lbl];
[lbl release];
}
然后我写类似这样的东西:
[self drawText:@"Asdfghjkl;" onView:view inRect:CGRectMake(45, 40, 85, 13)];
[self drawText:@"qwertyui" onView:view inRect:CGRectMake(173, 31, 126, 22)];
然后我得到了切割文字。我的错误在哪里?
最佳答案
正如Gargolev所说,它将仅调整为适合宽度。
因此,您应该选择正确的fontSize以适合您提供的高度。
要在运行时执行此操作而无需事先知道要使用的字体,一个简单的解决方案是:
UILabel *label = [[UILabel alloc] initWithFrame:myView.bounds];
label.font = [UIFont fontWithName:@"Helvetica" size:1.f];
float fontAspectFactor = 1.f/label.font.lineHeight;
label.font = [UIFont fontWithName:@"Helvetica" size:myView.height*fontAspectFactor];
[myView addSubview:label];
关于ios - iOS。方法adjustsFontSizeToFitWidth无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7991285/