gpt4 book ai didi

iphone - 自定义 View 中奇怪的抗锯齿

转载 作者:行者123 更新时间:2023-12-03 18:53:33 27 4
gpt4 key购买 nike

我有一个自定义UIView这是使用 -[drawRect:] 绘制的方法。

问题是抗锯齿效果非常奇怪,因为水平或垂直的黑线画得非常模糊。

如果我使用 CGContextSetAllowsAntialiasing 禁用抗锯齿功能,一切都按预期绘制。

抗锯齿:
alt text http://dustlab.com/stuff/antialias.png

无抗锯齿(看起来像 AA 的预期结果):
alt text http://dustlab.com/stuff/no_antialias.png

线宽恰好为1,所有坐标均为整数值。

如果我使用 CGContextStrokeRect 绘制矩形,也会发生同样的情况,但如果我画出完全相同的 CGRect 则不会与 UIRectStroke .

最佳答案

由于笔画向两侧扩展的量相等,因此一个像素宽度的线不得放置在整数坐标上,而是以 0.5 像素的偏移量放置。

计算描边线的正确坐标,如下所示:

CGPoint pos = CGPointMake(floorf(pos.x) + 0.5f, floorf(pos.y) + 0.5f);

顺便说一句:不要将您的值转换为 int 并返回 float 以消除小数部分。 C 中有一个用于此目的的函数,名为 floor

关于iphone - 自定义 View 中奇怪的抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1454509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com