在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天来了解下CATransform3D的一些基本的知识。 今天来了解下CATransform3D的一些基本的知识。 public func CATransform3DMakeTranslation( tx: CGFloat, ty: CGFloat, _ tz: CGFloat) -> CATransform3D
当tx为正值时,会向x轴正方向平移,反之,则向x轴负方向平移;当ty为正值时,会向y轴正方向平移,反之,则向y轴负方向平移;当tz为正值时,会向z轴正方向平移,反之,则向z轴负方向平移。 2. CATransform3DTranslate实现以一个已经存在的形变为基准,在x轴方向上平移x单位,在y轴方向上平移y单位,在z轴方向上平移z单位。 public func CATransform3DTranslate( t: CATransform3D, tx: CGFloat, ty: CGFloat, tz: CGFloat) -> CATransform3D
3. CATransform3DMakeScale实现以初始位置为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍,在z轴方向上缩放z倍。 public func CATransform3DMakeScale( sx: CGFloat, sy: CGFloat, sz: CGFloat) -> CATransform3D
4. CATransform3DScale实现以一个已经存在的形变为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍,在z轴方向上缩放z倍。 public func CATransform3DScale( t: CATransform3D, sx: CGFloat, sy: CGFloat, sz: CGFloat) -> CATransform3D
5. CATransform3DMakeRotation实现以初始位置为基准,在x轴,y轴,z轴方向上逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度),x,y,z三个参数只分是否为0。 public func CATransform3DMakeRotation( angle: CGFloat, x: CGFloat, y: CGFloat, z: CGFloat) -> CATransform3D
当x,y,z值为0时,代表在该轴方向上不进行旋转,当值为1时,代表在该轴方向上进行逆时针旋转,当值为-1时,代表在该轴方向上进行顺时针旋转。 6. CATransform3DRotate实现以一个已经存在的形变为基准,在x轴,y轴,z轴方向上逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度),x,y,z三个参数只分是否为0。 public func CATransform3DRotate( t: CATransform3D, angle: CGFloat, x: CGFloat, y: CGFloat, z: CGFloat) -> CATransform3D
方法调用,调用方法都是一样的: 如下: 以一个旋转动画为例: self.myView.frame = CGRect(x:30,y:280,width:kScreenWidth-60,height:150) self.myView.backgroundColor = UIColor.red self.view.addSubview(self.myView) var tranform = CATransform3D() tranform = CATransform3DMakeRotation(CGFloat(Double.pi * 160 / 180 ), 0, 1, 0); UIView.animate(withDuration: 3) { self.myView.layer.transform = tranform } 创建一个view,然后创建一个tranform,然后运行就可以了,角度的写法原来的M_PI废弃了,现在使用Double.pi/CGFloat.pi来进行设置! 附一个给表格cell的显示动画:
//设置cell的显示动画 func tableView(tableView: UITableView!, willDisplayCell cell: UITableViewCell!, forRowAtIndexPath indexPath: NSIndexPath!){ //设置cell的显示动画为3D缩放 //xy方向缩放的初始值为0.1 cell.layer.transform = CATransform3DMakeScale(0.1, 0.1, 1) //设置动画时间为0.25秒,xy方向缩放的最终值为1 UIView.animateWithDuration(0.25, animations: { cell.layer.transform=CATransform3DMakeScale(1, 1, 1) }) }
大体的实现思路就是这样的,可以一个一个方法的试试!动画就是平移/旋转/缩放几种样式!
|
请发表评论