【发布时间】:2013-02-26 18:37:41
【问题描述】:
这是我的代码:
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。
【问题讨论】:
-
请记住,在 Retina 设备上,1 点 = 2 像素。
-
@H2CO3 - 我不在视网膜上,但请记住这一点。如何区分两者?有常数吗?我想也许 cocoa 会自动完成所有的翻译。但这是另一个主题。
-
你在哪里画线?我只看到一个宽度设置为奇怪值 1 的矩形 (layer.frame)。
-
@AlexWien - 这是一个正在绘制的单像素矩形 = 一条线。有没有更好的方法来画一条简单的线?
-
@Wesley
[[UIScreen mainScren] scale]
标签: objective-c cocoa core-animation core-graphics