我想在一个圆圈内画一个圆圈。事实证明,外面是白色的,里面是蓝色的,尺寸清楚地标明,上面的位置也很清楚,但是由于某种原因,蓝色圆圈没有变圆并且显示不正确。
let backgroundCircle = UIView(frame: CGRect(origin: .init(x: 140, y: 450), size: CGSize(width: 22, height: 22)))
backgroundCircle.backgroundColor = .white
backgroundCircle.layer.cornerRadius = backgroundCircle.frame.height / 2
backgroundCircle.layer.borderWidth = 2.5
backgroundCircle.layer.borderColor = UIColor.white.cgColor
backgroundCircle.clipsToBounds = true
mImageView.addSubview(backgroundCircle)
let circle = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 17, height: 17)))
circle.backgroundColor = UIColor(red: 75/255, green: 173/255, blue: 212/255, alpha: 1.0)
circle.layer.cornerRadius = backgroundCircle.frame.height / 2
backgroundCircle.addSubview(circle)
}

看起来你有错误的蓝色圆圈原点。origin是左上角,现在和白色圆圈的原点一样,但是大小不同。可以通过将蓝色圆圈的中心移动到白色圆圈的中心来固定:
另外,如果你这样写,很明显白色圆圈的cornerRadius对于蓝色圆圈来说太大了 - 边缘将被切断。您可以通过单独计算蓝色圆圈的cornerRadius来修复它: