在视图下方可见相同的角半径

时间:2019-10-14 11:54:57

标签: swift uiview core-graphics

如果我将UIViews放在同一cornerRadius上,那么我可以在顶部(黄色)视图的角附近看到底部(红色)视图。有可能修复它吗?

let rectFrame = CGRect(x:50, y:100, width: 150, height: 150)
let cornerRadius: CGFloat = 10.0

let redView = UIView(frame:rectFrame)
redView.backgroundColor = .red
redView.layer.cornerRadius = cornerRadius

let yellowView = UIView(frame: rectFrame)
yellowView.backgroundColor = .yellow
yellowView.layer.cornerRadius = cornerRadius

view.addSubview(redView)
view.addSubview(yellowView)

enter image description here

角落(缩放):

enter image description here

2 个答案:

答案 0 :(得分:1)

这是 antialiasing 的结果。两个视图都有一些构成曲线的半透明像素。即使不是,也可以使曲线看起来平滑(因为像素为正方形)。

您可以turn off antialiasing绘制图层,但我建议您不要这样做。使后视图不可见会更简单。

答案 1 :(得分:0)

尝试将节点的zposition设置为不同的值,以便您控制哪一个位于顶部。