CALayer的:单个像素行看起来像2个像素(CALayer: Single pixel line

2019-08-17 05:06发布

这是我的代码:

int columns 3;
int columnWidth = self.layer.bounds.size.width / 3;

for (int c = 1; c < columns; c++) {
    CALayer *layer  = [CALayer layer];
    layer.frame = (CGRectMake(columnWidth * c + 0.5, 0.5, 1, self.layer.bounds.size.height));
    layer.backgroundColor = myColor;
    [grid addSublayer:layer];
}

据我所知,我必须在x和y 0.5个像素,这是我做了什么转移,但它仍显示为一个2像素线,而不是1。

Answer 1:

设置图层作为帧

layer.frame = (CGRectMake(columnWidth * c + 0.5, 0.5, 0.5, self.layer.bounds.size.height));

是啊,很会为视网膜也工作

选中此职位第1点线和像素边界 。它很好地解释有



Answer 2:

我继续作了解释性的画面,如果是有帮助的人

在精确的像素较低的线坐标,将看起来模糊...线的宽度各占一半位于不同行的像素...

上线由偏移line_width/2.0 ,并期待尖锐......这完全在于像素的行内。



文章来源: CALayer: Single pixel line looks like 2 pixels