淺談swift動畫(三)

Core Animation之CABasicAnimation

1.toValue與byValue

toValue表示最終的,調整到什么位置,byValue表示調整的幅度,調整了:

        //位置
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "position"
        let positionX:CGFloat = loginButton!.frame.origin.x+0.5*loginButton!.frame.size.width;
        let positionY:CGFloat = loginButton!.frame.origin.y+0.5*loginButton!.frame.size.height+100;
        animation.toValue = NSValue(cgPoint: CGPoint(x:positionX,y: positionY))
        animation.byValue = NSValue(cgPoint:CGPoint(x:-20,y:100))
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)
        //位置
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "transform.translation.y"
        animation.toValue = 100
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

2.縮放:

        //位置
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "transform.scale.x"
        animation.fromValue = 1.0
        animation.toValue = 0.8
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

3.旋轉:

        // transform除了scale縮放屬性之外還有rotation旋轉屬性
        //旋轉
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "transform.rotation.x"
        animation.toValue = Double.pi * 2
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

4.圓角動畫:

        //圓角
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "cornerRadius"
        animation.toValue = 25
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

5.邊框動畫

        //邊框
        loginButton?.layer.borderColor = UIColor.gray.cgColor
        loginButton?.layer.cornerRadius = 10.0
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "borderWidth"
        animation.toValue = 10
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

6.背景顏色:

        //顏色
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "backgroundColor"
        animation.fromValue = UIColor.green.cgColor
        animation.toValue = UIColor.red.cgColor
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

7.邊框顏色

        //顏色
        loginButton?.layer.borderWidth = 5
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "borderColor"
        animation.fromValue = UIColor.green.cgColor
        animation.toValue = UIColor.cyan.cgColor
        animation.duration = 3.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

8.淡入:

        //淡入
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "opacity"
        animation.fromValue = UIColor.green.cgColor
        animation.toValue = 1.0
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)

9.陰影:

        //陰影漸變
        loginButton?.layer.shadowColor = UIColor.red.cgColor
        loginButton?.layer.shadowOpacity = 0.5
//        loginButton?.layer.shadowPath = shadowPath.CGPath
        let animation:CABasicAnimation = CABasicAnimation()
        animation.keyPath = "shadowOffset"
        animation.toValue = NSValue(cgSize: CGSize(width: 10, height: 10))
        animation.duration = 2.0
        animation.fillMode = kCAFillModeForwards
        animation.isRemovedOnCompletion = false
        loginButton?.layer.add(animation, forKey: nil)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容