摆脱 UIView CA 转换后未对齐的像素

Posted

技术标签:

【中文标题】摆脱 UIView CA 转换后未对齐的像素【英文标题】:Get rid of misaligned pixels after UIView CA Transformation 【发布时间】:2012-05-08 08:50:54 【问题描述】:

我有一个 UILabel,我在其上执行 CGAffineTransformConcat 以将文本倾斜一定程度。 Instruments CA 分析告诉我,视图现在有未对齐的像素(忽略转换并且标签很好)。

我想知道是否有任何方法可以消除此标签中未对齐的像素,或者这是否不可能,因为无论如何转换都会导致坐标中的小数值。

我对具有小数值的框架进行了 CGRectIntegral 调用,但由于某种原因,视图仍然未对齐。

【问题讨论】:

【参考方案1】:

当图层旋转的角度不是 90° 的倍数时,它不能进行像素对齐。

如果您想呈现倾斜的文本,但仍需要对齐的像素,唯一的方法是自己绘制图层(视图)。您可以对齐图层,而是使用 Quartz 进行旋转。

编辑后注意:设置变换时不能使用框架:

警告如果变换属性不是恒等变换,则 此属性的值未定义,因此应忽略。

【讨论】:

以上是关于摆脱 UIView CA 转换后未对齐的像素的主要内容,如果未能解决你的问题,请参考以下文章

IOS-- UIView中的坐标转换

iOS UIView中的坐标转换

iOS UIView中的坐标转换

iOS开发笔记--UIView中的坐标转换

iOS坐标转换

OC convertRect