2017-02-28 2 views
0

CATransform3DMakeScale을 사용하여 CALayer을 내 viewcontroller 하단의 너비를 늘리려고 설정하려고합니다. 레이어를 잘 확대 할 수는 있지만 애니메이션을 통해 변형을 적용하려고하면 레이어가 애니메이션없이 변형됩니다.변형이 애니메이션에서 작동하지 않습니다.

let progressBar1 = CALayer() 

override func viewDidAppear() { 
    progressBar1.bounds = CGRect(x: 0, y: 0, width: 1, height: 5) 
    progressBar1.position = CGPoint(x: 0, y: 600) 
    progressBar1.backgroundColor = UIColor.white.cgColor 
    view.layer.addSublayer(progressBar1) 
    extendBar1() 
} 

func extendBar1(){ 
    let transform1 = CATransform3DMakeScale(30, 1, 0) 
    let anim = CABasicAnimation(keyPath: "transform") 
    anim.isRemovedOnCompletion = false 
    anim.fillMode = kCAFillModeForwards 
    anim.toValue = NSValue(caTransform3D:transform1) 
    anim.duration = 10.00 
    progressBar1.add(anim, forKey: "transform") 
} 

나는 또한 CATransaction에 다음과 같은 노력하지만

func extendBar3(){ 

    let transform1 = CATransform3DMakeScale(30, 1, 0) 

    CATransaction.begin() 
    CATransaction.setAnimationDuration(7.0) 
    progressBar1.transform = transform1 
    CATransaction.commit() 
} 

답변

0

수석 나머지 문제는이 라인 같은 결과를 얻을 :

let transform1 = CATransform3DMakeScale(30, 1, 0) 

변경하려면 10.

(결과는 아직 정확하게 원하는 애니메이션되지 않을 수도 있습니다,하지만 적어도 당신이 뭔가를 볼 수 -. 한 (0,600) 물론, 전체 화면 밖으로 아니므로)

관련 문제