这是我的代码:
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。
答案 0 :(得分:20)
我继续做了一个解释性的图片,以防它对任何人都有帮助
精确像素坐标的下方线条看起来模糊......线条宽度的每一半都位于不同的像素行中......
上面一行偏移line_width/2.0
并且看起来很清晰......它完全位于一行像素内。
答案 1 :(得分:3)
将图层框设置为
layer.frame = (CGRectMake(columnWidth * c + 0.5, 0.5, 0.5, self.layer.bounds.size.height));
是的,它也适用于视网膜
检查此post部分 1点线和像素边界。这里有很好的解释