相关疑难解决方法(0)

是否可以使用Cocoa Touch更改字体的字母间距/字距调整?

我已经在互联网上搜索了一段时间,以获取有关如何改变UIKit中字体的字母间距/字距调整的信息.

我担心的是,就像使用自己的自定义字体一样,你根本就不能.这将是一个可怕的消息.

我知道Apple正在通过这些限制来保护我们免受糟糕的设计,但它们也阻止我们实现真正优秀的设计.

人们建议我做什么?

  1. 使用带有标准字距调整的字体,人们可能不会注意到差异.

  2. 找到某人的黑客课程,以便在与他们辛苦赚来的现金分手后获得用户应得的外观.

  3. 使用我忽略的方法,并与UIKit一起做,承诺永远感谢那个赋予这隐藏的知识金块的人.

iphone cocoa-touch core-graphics objective-c quartz-graphics

15
推荐指数
1
解决办法
9298
查看次数

在iOS上显示按比例分隔的数字(而不是等宽/表格)

我通过将它们存储在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)支持比例数字字形(理想情况下,内置)?还要别的吗?

谢谢.

nsstring uifont ios uifontdescriptor

7
推荐指数
1
解决办法
2841
查看次数