如果宽度不均匀,为什么UILabel的文字在iPad上模糊?

Kru*_*lur 6 cocoa-touch objective-c uikit ios

以下现象:我的文字是"搜索".我创建了一个UILabelSmallSystemFontSize并调用sizeToFit:.

结果是39个单位宽,文字看起来有点模糊.如果我将宽度调整到40,它看起来很完美.

我看到,如果你点击子像素,文字变得模糊,这意味着宽度将是39.5,但它似乎必须是均匀的.

有人可以证实甚至解释发生了什么吗?

Joh*_*rug 5

就我而言,shouldRasterize = YES罪魁祸首是设置UILabel的Superview的CGLayer。删除该行可使文本清晰明快。

  • “ layer.shouldRasterize = YES;”只会在您未同时将“ rasterizationScale”设置为屏幕缩放比例(默认值为1.0)时才使事情看起来模糊,无论您是否在视网膜显示器上。您可以通过执行以下操作来解决此问题:layer.rasterizationScale = [[UIScreen mainScreen] scale];` (3认同)

zap*_*aph 4

UIView项目按其中心定位,对于奇数尺寸,半像素为 19.5,宽度为 39。这种对齐会导致像素平均,从而导致模糊。

一种方法是使其宽度均匀。

另一种是将其放置在偶数点的中心:

@property(nonatomic) CGPoint center
Run Code Online (Sandbox Code Playgroud)

例如,对于 (10, 10, 39, 19) 处的所需位置,label;可以使用:

label.center = CGPointMake(50, 20);
Run Code Online (Sandbox Code Playgroud)