Swift CAShapeLayer,UIBezierPath绘制图形
2016-03-06 18:31
591 查看
1、绘制矩形
2、绘制圆形
3、画弧
5、添加动画
//利用CAShapeLayer绘图一个简单的矩形 let layer=CAShapeLayer() layer.frame=CGRectMake(110, 100, 150, 100) layer.backgroundColor=UIColor.blackColor().CGColor view.layer.addSublayer(layer) //利用UIBezierPath绘制简单的矩形 let path=UIBezierPath(rect: CGRectMake(110, 100, 150, 100)) let layer=CAShapeLayer() layer.path=path.CGPath //填充颜色 layer.fillColor=UIColor.blackColor().CGColor //边框颜色 layer.strokeColor=UIColor.redColor().CGColor view.layer.addSublayer(layer)
2、绘制圆形
let path=UIBezierPath(roundedRect: CGRectMake(100, 50, 100, 100), cornerRadius: 50) let layer=CAShapeLayer() layer.path=path.CGPath layer.fillColor=UIColor.blackColor().CGColor layer.strokeColor=UIColor.greenColor().CGColor view.layer.addSublayer(layer) //制定起始角和半径画圆 let radius:CGFloat=60.0 let startAngle:CGFloat=0.0 let endAngle:CGFloat=CGFloat(M_PI*2) let path=UIBezierPath(arcCenter: view.center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true) let layer=CAShapeLayer() layer.path=path.CGPath layer.fillColor=UIColor.blackColor().CGColor layer.strokeColor=UIColor.greenColor().CGColor view.layer.addSublayer(layer)
3、画弧
let startPoint=CGPointMake(50, 300) let endPoint=CGPointMake(300, 300) let controlPoint=CGPointMake(170, 50) let layer1=CALayer() layer1.frame=CGRectMake(startPoint.x, startPoint.y, 5, 5) layer1.backgroundColor=UIColor.redColor().CGColor let layer2=CALayer() layer2.frame=CGRectMake(endPoint.x, endPoint.y, 5, 5) layer2.backgroundColor=UIColor.redColor().CGColor let layer3=CALayer() layer3.frame=CGRectMake(controlPoint.x, controlPoint.y, 5, 5) layer3.backgroundColor=UIColor.redColor().CGColor let path=UIBezierPath() let layer=CAShapeLayer() path.moveToPoint(startPoint) path.addQuadCurveToPoint(endPoint, controlPoint: controlPoint) layer.path=path.CGPath layer.fillColor=UIColor.clearColor().CGColor layer.strokeColor=UIColor.blackColor().CGColor view.layer.addSublayer(layer) view.layer.addSublayer(layer1) view.layer.addSublayer(layer2) view.layer.addSublayer(layer3)
4、画弧2 // let startPoint=CGPointMake(50, 300) let endPoint=CGPointMake(300, 300) let controlPoint1=CGPointMake(120, 180) let controlPoint2=CGPointMake(220, 420) let layer1=CALayer() layer1.frame=CGRectMake(startPoint.x, startPoint.y, 5, 5) layer1.backgroundColor=UIColor.redColor().CGColor let layer2=CALayer() layer2.frame=CGRectMake(endPoint.x, endPoint.y, 5, 5) layer2.backgroundColor=UIColor.redColor().CGColor let layer3=CALayer() layer3.frame=CGRectMake(controlPoint1.x, controlPoint1.y, 5, 5) layer3.backgroundColor=UIColor.redColor().CGColor let layer4=CALayer() layer4.frame=CGRectMake(controlPoint2.x, controlPoint2.y, 5, 5) layer4.backgroundColor=UIColor.redColor().CGColor let path=UIBezierPath() let layer=CAShapeLayer() path.moveToPoint(startPoint) path.addCurveToPoint(endPoint, controlPoint1:controlPoint1, controlPoint2: controlPoint2) layer.path=path.CGPath layer.fillColor=UIColor.clearColor().CGColor layer.strokeColor=UIColor.blackColor().CGColor view.layer.addSublayer(layer) view.layer.addSublayer(layer1) view.layer.addSublayer(layer2) view.layer.addSublayer(layer3) view.layer.addSublayer(layer4)
5、添加动画
let layer=CAShapeLayer() layer.backgroundColor=UIColor.lightGrayColor().CGColor let animation = CABasicAnimation(keyPath: "strokeEnd") animation.fromValue=0 animation.toValue=1 animation.duration=2 layer.addAnimation(animation, forKey: "") view.layer.addSublayer(layer)
相关文章推荐
- iOS - Swift - 图书展示项目
- Swift图书展示项目笔记
- Swift构造函数
- dyld: Library not loaded: @rpath/libswiftCore.dylib 错误的解决
- Swift 之 RxSwift
- iOS开发--Swift RAC响应式编程
- OC Swift 混编
- iOS - Swift - 语法糖
- swift : NSData数据类型与String字符串类型的转换方法
- swift空间位置,大小改变的动画效果
- swift之自定义表格控件(UITableView)
- swift 调用第三方的oc 方法
- Swift - 时间控制器NSTimer(每隔一定时间执行某个函数)
- Swift 继承Inheritance
- swift:CoreData简单入门(增加、查询、修改、删除)(详细讲解)
- How to create a pure Swift module
- swift基本语法
- Swift 初体验之三(终结篇),实现登陆注册
- iOS3D-Touch开发之Home Screen Quick Actions(Swift)
- Swift 2.0 异常处理--throws