İçeriğe geç

UIBezierPath kullanımı

İOS

Merhabalar bu yazımda İOS uygulama yazarken gömülü olarak bulunan UIBezierPath sınıfının kullanımına örnek vereceğim.

Bu sınıf bazı çizimleri yapmamızı sağlayan çizim sınıfıdır. (Kare,Dikdörtgen,Oval,Üçgen)

UIView nesnesi üzerine drawRect fonksiyonu içerisinde direk çizimimizi yazıp basabiliyoruz. Buna ek olarak normal UIViewController‘da bir layer oluşturup ekrana basmamız gerekli.

Aşağıdaki örnek ile üçgen çizebiliriz.

let bez = UIBezierPath()
        bez.moveToPoint(CGPoint(x: 100, y: 100))
        bez.addLineToPoint(CGPoint(x: 50, y: 0))
        bez.addLineToPoint(CGPoint(x: 0, y: 100))
        UIColor.redColor().setFill()
        UIColor.redColor().setStroke()
        bez.fill()
        bez.stroke()
        bez.closePath()
import UIKit

class Draw: UIView {


    override init(frame: CGRect) {
        super.init(frame: frame)
        backgroundColor = UIColor.whiteColor()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func drawRect(rect: CGRect) {

        let bez = UIBezierPath(rect: CGRect(x: 100, y: 100, width: 200, height: 200))
        UIColor.greenColor().setFill()
        UIColor.whiteColor().setStroke()
        bez.lineWidth = 7
        bez.fill()
        bez.stroke()
        
    }
 

}

Aşağıdada direk UIViewController içerisinde yaratma şekli.

import UIKit
import CoreImage

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
   
        self.view.backgroundColor = UIColor.lightGrayColor()
        
        let bez = UIBezierPath(rect: CGRect(x: 100, y: 100, width: 200, height: 200))
        let shape = CAShapeLayer()
        shape.path = bez.CGPath
        shape.frame = view.frame
        shape.fillColor = UIColor.greenColor().CGColor
        shape.strokeColor = UIColor.blueColor().CGColor
        shape.lineWidth = 1
        view.layer.addSublayer(shape)
       
   
    }
    
}

 

Tarih:iOSSwift

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca