我在UIView中有两个相同高度和宽度的表格视图。我试图在tableviews之间放置一个分隔符(宽度为1px的UIView),如图所示,但它看起来像2px宽。我已尝试将分隔符放在.xib中并以编程方式放置,但我遇到了同样的问题。我想要实现一个厚度与tableview单元分隔线厚度相同的分隔线。
UIView *vLine = [[UIView alloc]initWithFrame:CGRectMake(300,0,1,500)];
vLine.backgroundColor = [UIColor colorWithRed:207.0f/255.0f green:207.0f/255.0f blue:207.0f/255.0f alpha:1.0];
[self.view addSubview:vLine];
答案 0 :(得分:2)
试试这个,因为它更强大:
CGFloat screenScale = [[UIScreen mainScreen] scale];
UIView *vLine = [[UIView alloc] initWithFrame:CGRectMake(300, 0, 1 / screenScale, 500)];
答案 1 :(得分:1)
对于视网膜设备,1点将是2px。因此,对于视网膜设备使用0.5作为宽度,对于非视网膜设备使用1作为宽度。
if(is_retina) {
[[UIView alloc]initWithFrame:CGRectMake(300,0,0.5,500)];
} else {
[[UIView alloc]initWithFrame:CGRectMake(300,0,1,500)]
}
答案 2 :(得分:0)
尝试使用1px宽度设置包含0.5像素清晰颜色的图案图像,并使用分隔符颜色设置其他0.5像素。
下面给出了一个示例模式图像。
UIView *vLine = [[UIView alloc]initWithFrame:CGRectMake(300,0,1,500)];
vLine.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myPatternImage.png"]];
此处您的图案图像应为1px宽度,包含0.5 px清晰颜色,其他0.5px包含正常屏幕中的分隔符颜色。尝试使用下面提供的图像。[
]
答案 3 :(得分:-1)
本机表视图分隔符的高度为0.5像素。只需将框架调整为:
UIView *vLine = [[UIView alloc]initWithFrame:CGRectMake(300.0f,0.0f,0.5f,500.0f)];