İçeriğe geç

CATransaction kullanımı

İOS

Merhabalar bu yazımda İOS uygulamalarınızda bazen bir animasyonun bitimi sonrası farklı işlemler yapmak isteyebilirsiniz. Bu durumu nasıl rahat bir şekilde halledebiliriz bunun örneğini vereceğim.

CABasicAnimation,CAKeyFrameAnimation sınıfları ile animasyon yazdığımızda bu sorunlar bazen meydana gelmekte animasyon sonrası nasıl farklı bir eylem devreye sokarız bunun cevabını CATransaction sınıfı vermekte bu olayı çözmek için İOS‘da hazır olarak bulunmakta.

Kullanımı oldukça basit rahat bir şekilde animasyonlarınızın sonrası eylemler ekleyebilirsiniz.

Aşağıda animasyonlu bir örneği yazdım kodu inceleyip bu sınıfın kullanımını öğrenebilirsiniz.

func drawLayer(){
        
       let pathbez = UIBezierPath(rect: CGRect(x: 50, y: 50, width: 100, height: 100))
        
        let layer = CAShapeLayer()
        layer.path = pathbez.CGPath
        layer.strokeColor = UIColor.redColor().CGColor
        layer.lineWidth = 3.0
        layer.fillColor = UIColor.clearColor().CGColor
        layer.strokeStart = 0.0
        
        view.layer.addSublayer(layer)
        
        let anima = CABasicAnimation(keyPath: "strokeStart")
        anima.fromValue = 0.0
        anima.toValue = 1.0
        anima.duration = 3.0
        anima.fillMode = kCAFillModeForwards
        anima.repeatCount = 1
        anima.removedOnCompletion = false
        
        layer.strokeStart = 1.0
        
        layer.addAnimation(anima, forKey: nil)
        
        
    }

Bu animasyon yaratan küçük kutu çizim animasyonu bitimine bir eylem ekleyelim.

         CATransaction.begin()
         
         CATransaction.setCompletionBlock {
         
           // animasyon bitiminde çalışacak kod parçaları
            
            print("Sonra")
         
         }
        
          // İlk olarak çalışacak kod parçaları
          drawLayer()
         
         CATransaction.commit()

 

 

Tarih:iOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca