重叠和触摸CoreGraphics矩形的边框为.5px

时间:2009-05-03 17:54:51

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

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

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

overlap problem

当蓝色和红色结合在一起时,会产生这种刺激性的.5px合并线。 我似乎无法摆脱这种情况,甚至改变它的颜色。

这个版本在矩形之间有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);

}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没有缺陷。这是一种视错觉。你的目光是将R& B值整合在一起并推断出白色重叠。

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

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