在ios7中,无论您是在非视网膜还是视网膜设备中观看,默认tableviewcell上的边框始终都是相同的,即它不会放大。使用CALayer创建边框时,如何实现相同的效果?我试过了
CALayer *borderLayer = [CALayer layer];
[borderLayer setBorderColor:[UIColor redColor].CGColor];
[borderLayer setBorderWidth:1];
[borderLayer setContentsScale:1.0f];
但是视网膜的边界似乎仍然翻了一番。有谁知道我怎么能绕过这个?
对不起,我已经意识到我在这里错过了一些东西。就像在tableView示例中一样,我只希望边框位于一侧,例如顶部。如果我使用setBorder,它显然会在框架的所有边上绘制边框。如果我将图层的框架设置为0.5,它根本不显示,如果我将其设置为1,它显然会再显得更厚。
由于帧的上述0.5f高度问题,我无法使用setBackgroundColor和0.5f的帧,因为它无法渲染。
我唯一的选择是采用更基本的绘图方法吗?
根据sage444的回答,我使用了背景颜色而不是边框和以下
if([UIScreen mainScreen].scale > 1.0f){
[topBorder setFrame:CGRectMake(0,0,width,0.5f)];
}else{
[topBorder setFrame:CGRectMake(0,0,width,1.0f)];
}
答案 0 :(得分:0)
在CALayer
上绘制一条像素线,您应该将宽度设置为0.5f
,对于非视网膜显示,它将是1像素,在视网膜上,您还可以获得1条视网膜像素线。
要检查视网膜显示是否使用contentsScale