我正在为我的 iOS 应用程序使用自定义字体。我的视图需要根据视图的大小为字体选择不同的磅值。如果我有一个预定
CGFloat ascender;
我基本上想确定这一点
CGFloat calculatedFontSize = [self fontSizeForAscender:ascender];
[UIFont fontWithName:@"DINEngschriftStd" size:calculatedFontSize];
实现这一目标的最佳方法是什么?
尝试这个。[aString sizeWithFont:font minFontSize:minSize actualFontSize:&theSizeToUse forWidth:ViewWidth lineBreakMode:UILineBreakModeWordWrap];
theSizeToUse 只是一个未初始化的 CGFloat(即。CGFloat theSizeToUse;
)。您应该将它的地址传递给该方法,并在返回时包含您应该使用的字体大小。
没有特别明显的方法可以做到这一点。您可以反复更改字体大小,直到找到具有正确升序的字体,但这有点混乱(幸运的是,没有那么多浮点数,因此您可以在 31 次间隔二等分试验中合理准确地做到这一点)。
另一方面,如果你假设升序随字体大小线性缩放,你可以这样做:
UIFont * f = [UIFont fontWithName:... size:1];
f = [f fontWithSize:ascender/f.ascender];