带有cornerRadius和图层边框的UIView显示错误

Sti*_*Sti 5 uiview ios

我正在尝试使用另一种颜色的 1pt 边框创建一个彩色的 10pt 圆圈。在这个例子中,假设我想要一个 10pt 的红色圆圈和一个白色的 1pt 边框。我假设我必须使UIView直径为 12pt(圆形为 10pt,每边为 1pt 的边框)。角半径是视图宽度的一半。

这个圆被添加到另一个 UIView,它是 NavigationBar 中 barButtonItem 中的 customView,如果这与此有关的话..

我的代码如下:

let circle = UIView(frame: CGRect.zero)
circle.translatesAutoresizingMaskIntoConstraints = false
let w = NSLayoutConstraint(item: circle, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .width, multiplier: 1, constant: 12)
let h = NSLayoutConstraint(item: circle, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .height, multiplier: 1, constant: 12)
circle.addConstraints([w, h])
let x = NSLayoutConstraint(item: circle, attribute: .centerX, relatedBy: .equal, toItem: someView, attribute: .centerX, multiplier: 1, constant: 0)
let y = NSLayoutConstraint(item: circle, attribute: .centerY, relatedBy: .equal, toItem: someView, attribute: .centerY, multiplier: 1, constant: 0)
someView.addSubview(circle)
someView.addConstraints([x, y])
circle.backgroundColor = UIColor.red
circle.layer.cornerRadius = 6
circle.layer.borderColor = UIColor.white.cgColor
circle.layer.borderWidth = 1
circle.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)

这是结果:

正如你所看到的,这个圆圈很好地宽 10pt,然后在它周围有 1pt 的边框,但它在整个边框上都有红色的小瑕疵。某种光栅化?我怎样才能解决这个问题?

边界

放大:

放大

可以制作一个 12pt 的视图和另一个以 10pt 为中心的视图,使用不同的颜色,但我宁愿实例化 1 个视图而不是 2 个。