我已经在互联网上搜索了一段时间,以获取有关如何改变UIKit中字体的字母间距/字距调整的信息.
我担心的是,就像使用自己的自定义字体一样,你根本就不能.这将是一个可怕的消息.
我知道Apple正在通过这些限制来保护我们免受糟糕的设计,但它们也阻止我们实现真正优秀的设计.
人们建议我做什么?
使用带有标准字距调整的字体,人们可能不会注意到差异.
找到某人的黑客课程,以便在与他们辛苦赚来的现金分手后获得用户应得的外观.
使用我忽略的方法,并与UIKit一起做,承诺永远感谢那个赋予这隐藏的知识金块的人.
iphone cocoa-touch core-graphics objective-c quartz-graphics
我通过将它们存储在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);
}
Run Code Online (Sandbox Code Playgroud)
在其他地方:
-(NSDictionary *) attributes
{
static NSDictionary * attributes;
if(!attributes)
{
attributes = @{
NSFontAttributeName: [UIFont systemFontOfSize:11],
NSForegroundColorAttributeName: [UIColor whiteColor]
};
}
return attributes;
}
Run Code Online (Sandbox Code Playgroud)
这个结果字形都具有 6.358点的相同宽度.
是否有一些渲染选项我可以启用它来启用比例数字字形?是否有另一种字体(理想情况下类似于Helvetica Neue)支持比例数字字形(理想情况下,内置)?还要别的吗?
谢谢.