我通过将数字存储在 NSAttributedString 中并使用“drawAtPoint:”渲染来在 iOS 中渲染数字(针对 7 及以上)。我正在使用 Helvetica Neue。
我注意到像这样绘制的数字的数字是不成比例的——字形都具有相同的宽度。即使是细小的“1”也与“0”占用相同的空间。
一项测试证实了这一点:
for(NSInteger i=0; i<10; ++i)
{
NSString *iString = [NSString stringWithFormat: @"%d", i];
const CGSize iSize = [iString sizeWithAttributes: [self attributes]];
NSLog(@"Size of %d is %f", i, iSize.width);
}
在其他地方:
-(NSDictionary *) attributes
{
static NSDictionary * attributes;
if(!attributes)
{
attributes = @{
NSFontAttributeName: [UIFont systemFontOfSize:11],
NSForegroundColorAttributeName: [UIColor whiteColor]
};
}
return attributes;
}
生成的字形都具有相同的 6.358 点宽度。
是否有一些渲染选项我可以打开它来启用比例数字字形?是否有另一种字体(理想情况下类似于 Helvetica Neue)支持比例数字字形(理想情况下是内置的)?还要别的吗?
谢谢你。