Что я хотел бы сделать, это просто нарисовать всю форму таблетки в виде одного пути и заполнить его.Вот подкласс UIView, который рисует себя в виде таблетки:
Итак, вы видите, что это просто вопрос установки размера и пропорций этого видатак, как вы хотите, и таблетки будут появляться, независимо от того, на каком устройстве вы работаете.
Вот код для просмотра таблеток:
class PillView : UIView {
required init?(coder aDecoder: NSCoder) {
super.init(coder:aDecoder)
self.isOpaque = false
}
override func draw(_ rect: CGRect) {
let ins : CGFloat = 2
let r = self.bounds.insetBy(dx: ins, dy: ins)
let radius : CGFloat = r.size.height / 2
let d90 = CGFloat.pi/2
let path = CGMutablePath()
path.move(to:CGPoint(x:r.maxX - radius, y:ins))
path.addArc(center:CGPoint(x:radius+ins, y:radius+ins), radius: radius,
startAngle: -d90, endAngle: d90, clockwise: true)
path.addArc(center:CGPoint(x:r.maxX - radius, y:radius+ins), radius: radius,
startAngle: d90, endAngle: -d90, clockwise: true)
path.closeSubpath()
let bez = UIBezierPath()
bez.cgPath = path
UIColor.green.setFill()
bez.fill()
}
}