Как нарисовать круг в круге с помощью кода
Хочу нарисовать круг в круге. Получается внешний белый и внутри него синий, размеры всё четко указал, расположение что на чём лежит тоже, но вот синий круг почему-то не округляется и отображается неправильно.
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)
}
Ответы (1 шт):
Автор решения: Dmitry Serov
→ Ссылка
Похоже, что у вас неверно задан origin у синего круга. origin – это верхний левый угол, сейчас он совпадает с origin белого круга, а размеры у них разные. Можно исправить, передвинув центр синего круга в центр белого:
circle.center = CGPoint(x: backgroundCircle.bounds.width / 2, y: backgroundCircle.bounds.height / 2)
Ещё, если так написать, то становится видно, что cornerRadius белого круга слишком велик для синего – края будут обрезаны. Исправить можно, отдельно вычислив cornerRadius для синего круга:
circle.layer.cornerRadius = circle.bounds.height / 2
