Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如果UIViews边框颜色alpha小于1.0,如何避免颜色重叠?_Ios_Objective C_Uiview_Border_Calayer - Fatal编程技术网

Ios 如果UIViews边框颜色alpha小于1.0,如何避免颜色重叠?

Ios 如果UIViews边框颜色alpha小于1.0,如何避免颜色重叠?,ios,objective-c,uiview,border,calayer,Ios,Objective C,Uiview,Border,Calayer,我把UIView的alpha设置为.5,它的边框颜色alpha也设置为.5,它们是类似的灰色,但在外面显示为较厚的灰色。我猜这是因为这两种颜色混合在一起。有没有一种方法可以不只是在顶部添加边框,而是添加一个边框来替换其下方的像素?你说得对,解决此问题的唯一方法是将0.5 alpha视图放在容器视图中,稍微插入,然后将边框添加到容器中。我决定将此作为答案而不是注释发布: 另一种方法是将UIView子类化,以添加一个比其视图图层大一个像素的CALayer,并根据需要具有borderColor和bor

我把UIView的alpha设置为.5,它的边框颜色alpha也设置为.5,它们是类似的灰色,但在外面显示为较厚的灰色。我猜这是因为这两种颜色混合在一起。有没有一种方法可以不只是在顶部添加边框,而是添加一个边框来替换其下方的像素?

你说得对,解决此问题的唯一方法是将0.5 alpha视图放在容器视图中,稍微插入,然后将边框添加到容器中。

我决定将此作为答案而不是注释发布:
另一种方法是将UIView子类化,以添加一个比其视图图层大一个像素的CALayer,并根据需要具有borderColor和borderWidth。对于一次性,您可以向视图控制器添加代码,通过代码而不是子类化UIView向视图添加层。我怀疑单像素宽度增加是否需要调整角半径,除非视图非常小邓肯C 37秒前的编辑

可以解决这个问题。唯一糟糕的是,我有一个圆角,所以我必须找到superviews半径,计算子视图的半径,也可以使用borderwidth。你可以子类化
UIView
并覆盖。或者子类化UIView以添加一个比视图层大一个像素的CALayer,并具有所需的边框颜色和边框宽度。对于一次性,您可以向视图控制器添加代码,通过代码而不是子类化UIView向视图添加层。我怀疑单像素宽度增加是否需要调整角半径,除非视图非常小。