我需要用一些文本填写矩形。 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/

10-10 08:58