0

我正在将 UILabel 绘制到 UIImage。
UILabel 的宽度为 193.5,而下面代码生成的 UIImage 为 194 宽。
为什么是这样?

UIGraphicsBeginImageContextWithOptions(label.bounds.size, YES, [[UIScreen mainScreen] scale]);
[label.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
4

2 回答 2

0

考虑一下 - 没有办法真正渲染半个像素。我想你可以在技术上将一个像素与另一个像素混合,但你仍然需要一个完整的像素。所以它必须四舍五入。我认为为您的任何 UI 元素坐标设置一个非整数值是错误的 - 您最终会得到一个看起来模糊的 UI。所以试着弄清楚如何解决半像素问题。

于 2012-09-01T20:50:01.583 回答
0

你是如何设法获得 UILabel 宽度的半个像素的?它可能看到了这一点,并自动将其四舍五入为 194。

于 2012-09-01T20:43:07.680 回答