Transfrom动画

本文讲述的是利用CATransfrom实现九宫格的出现动画

首先,定义相关变量,对象

//格子行数和列数
    var dimension:Int = 4
    //格子间隔
    var padding:CGFloat = 20
    //格子大小
    var width:CGFloat = (UIScreen.main.bounds.size.width - 100)/4
    //保存格子
    var myViews = Array<UIView>()

设置格子的相关坐标

var x:CGFloat = 20
        var y:CGFloat = 50

        for _ in 0..<dimension{

            for _ in 0..<dimension{

                let myView = UIView(frame:CGRect(x: x,y: y,width: width,height: width))
                myView.backgroundColor = UIColor.darkGray
                self.view.addSubview(myView)

                myViews.append(myView)

                x += padding + width
            }
            x = 20
            y += padding + width
        }

添加Transfrom动画

 for myView in myViews{

            //将视图缩小为原来的1/10
            myView.layer.setAffineTransform(CGAffineTransform(scaleX: 0.1, y: 0.1))
            //myView.alpha = 0

            UIView.animate(withDuration: 1, delay: 0.01, options: UIViewAnimationOptions(), animations: {() -> Void in

                    //将视图旋转90度
                    myView.layer.setAffineTransform(CGAffineTransform(rotationAngle: 90))

                }, completion: {(finish:Bool) -> Void in

                    UIView.animate(withDuration: 1, animations: {() -> Void in
                        //动画结束后,数据块复原
                        myView.layer.setAffineTransform(CGAffineTransform.identity)
                        //myView.alpha = 1.0
                    })
            })
        }

最后运行结果如下

Demo
!(https://github.com/MrLinTianbao/CATranfrom.git)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值