UIView Width问题

时间:2014-12-14 07:40:57

标签: ios iphone ipad

我在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];

enter image description here

4 个答案:

答案 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包含正常屏幕中的分隔符颜色。尝试使用下面提供的图像。[ enter image description here ]

答案 3 :(得分:-1)

本机表视图分隔符的高度为0.5像素。只需将框架调整为:

UIView *vLine = [[UIView alloc]initWithFrame:CGRectMake(300.0f,0.0f,0.5f,500.0f)];