【发布时间】:2014-03-11 14:54:18
【问题描述】:
在 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.5f