DoeJ
DoeJ

Reputation: 465

Programmatically drawing custom oval shape on screen swift

How can i draw custom oval shape like in below image in swift (not swiftUI).

Thank you in advance enter image description here

Upvotes: 1

Views: 2416

Answers (2)

sawin0
sawin0

Reputation: 663

I have tried to clone similar view using UIView and was able to create similar UI as you have stated on screenshot enter image description here

And here is my code snippet

let width: CGFloat = view.frame.size.width
let height: CGFloat = view.frame.size.height

let path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height), cornerRadius: 0)
let rect = CGRect(x: width / 2 - 150, y: height / 2.5 - 100, width:  300, height: 400)
let circlePath = UIBezierPath(ovalIn: rect)
path.append(circlePath)
path.usesEvenOddFillRule = true

let fillLayer = CAShapeLayer()
fillLayer.path = path.cgPath
fillLayer.fillRule = .evenOdd
fillLayer.fillColor = UIColor.red.cgColor
fillLayer.opacity = 0.5
view.layer.addSublayer(fillLayer)

Hope this helps you. Good day.

Upvotes: 7

Jawad Ali
Jawad Ali

Reputation: 14407

You can draw oval path like this

class CustomOval: UView {

    override func drawRect(rect: CGRect) {
       var ovalPath = UIBezierPath(ovalIn: rect)
        UIColor.gray.setFill()
        ovalPath.fill()
    }
}

Upvotes: 2

Related Questions