Transfrom动画

来源:互联网 发布:淘宝天猫投诉电话人工 编辑:程序博客网 时间:2024/06/05 16:44

本文讲述的是利用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)

原创粉丝点击