【问题标题】:Overlapping and touching CoreGraphics rectangles have a .5px border重叠和接触的 CoreGraphics 矩形有 0.5px 的边框
【发布时间】:2009-05-03 17:54:51
【问题描述】:

我的核心图形填充在靠近、接触或重叠时表现得很奇怪。此问题出现在 iPhone 模拟器和 iPhone OS 2.2 上。

这里我们有两个标签和一个带有两个 CGContextFillRect() 的自定义视图:

overlap problem

当蓝色和红色结合在一起时,它们会形成这条令人讨厌的 0.5 像素合并线。 我似乎无法摆脱它,甚至无法改变它的颜色。

这个版本的矩形之间有1px的间隙,当然是用黑色背景填充的:

pixel gap

我已尝试禁用抗锯齿功能,但这并不能解决问题。

- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetAllowsAntialiasing(context, false);

CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
CGContextFillRect(context, CGRectMake(20.0, 35.0 + 40 + 20 , 100, 40));

CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, CGRectMake(20.0 + 100 , 35.0 + 40 + 20 , 100, 40));

CGContextSetAllowsAntialiasing(context, true);

}

有什么想法吗?

【问题讨论】:

    标签: iphone cocoa-touch graphics core-graphics antialiasing


    【解决方案1】:

    没有缺陷。这是一种视错觉。您的眼睛正在将 R&B 值紧密集成在一起并推断出白色重叠。

    使用 pixie(Xcode 的一部分)或 xscope(iconfactory 的付费升级)查看图形。

    http://www.freeimagehosting.net/uploads/th.e015daef50.png>

    【讨论】:

    • 谢谢!所以这是湿件中的一个错误。将不得不等待版本 2.0 :-D
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2015-07-29
    • 2020-09-09
    相关资源
    最近更新 更多