iOS View.layer.border 有白边
Posted
技术标签:
【中文标题】iOS View.layer.border 有白边【英文标题】:iOS View.layer.border has a white edge 【发布时间】:2014-06-23 02:05:39 【问题描述】:我正在使用<QuartzCore/QuartzCore.h>
来定义我的自定义视图的边框,如下所示:
layer.borderColor = BACKGROUND_COLOR.CGColor; <-- BACKGROUND_COLOR is the darkblue UIColor
但是,在我设置它并在设备上运行之后,我可以在边界周围的视图周围检查一个非常薄的微小模糊的锯齿形白色边缘。看起来像是渲染问题。
我想知道是否可以解决这个问题?
谢谢
-- 编辑:添加截图(在低亮度显示器中可能不清晰)--
【问题讨论】:
BACKGROUND_COLOR 设置为什么?你可能想试试 layer.borderWidth = 0.0;或其他什么,看看是否有帮助。 嗨@user2277872,背景颜色是UIColor。我仍然希望脚趾边框宽度不为零以实现上述样式。 有点晚了,但你有没有解决这个问题?我遇到了完全相同的问题,并且必须使用cornerRadius 显示 【参考方案1】:也设置边框宽度..并尝试一次没有圆角半径
view.layer.borderWidth = 1.0;
view.layer.borderColor = BACKGROUND_COLOR.CgColor;
【讨论】:
对于 Retina 设备,您可能需要将borderWidth
设置为 0.5【参考方案2】:
设置图层的cornerRadius
和borderWidth
后,在视图中添加一个圆形遮罩:
// set layers cornerRadius and border
view.layer.cornerRadius = viewWidth / 2.0;
view.clipsToBounds = YES;
view.layer.borderWidth = borderWidth;
view.layer.borderColor = BACKGROUND_COLOR.CGColor;
// set mask
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:view.bounds cornerRadius:view.layer.cornerRadius];
CAShapeLayer *mask = [CAShapeLayer layer];
mask.path = path.CGPath;
view.layer.mask = mask;
【讨论】:
【参考方案3】:由于问题仍未解决,我添加了一个经过测试且有效的解决方案here。看看有没有帮助。
【讨论】:
以上是关于iOS View.layer.border 有白边的主要内容,如果未能解决你的问题,请参考以下文章