网站大量收购独家精品文档,联系QQ:2885784924

使用 Swift 构建自定义的ActivityIndicator View.doc

使用 Swift 构建自定义的ActivityIndicator View.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用 Swift 构建自定义的ActivityIndicator View

目前在自己的个人项目里,已经开始使用Swift去编写代码。这篇文章把项目中自己设计的一个ActivityIndicator View展示给大家。 在开始之前,我们先看看最终的效果,如下图: 我建议大家下载本文对应在Github分享的完整项目,以便跟着本篇文章来阅读代码。 需求分析 我们需要实现一个自定义的和UIActivityIndicatorView提供相似功能的一个Loading效果。我们将使用Core Graphics来绘制这样的效果,并让它动起来。 让我们先分析一下这个控件的组成,为我们实际编码提供具体的思路。 首先,这个loading效果图,是由8个圆弧组成的一个圆。 我们先要会画圆弧: 像这样画8个圆弧,围成一个圆: 然后通过重复改变每一个圆弧的颜色,让它动起来。 我们继承UIView, 重写drawRect方法绘制界面,第一步得到当前绘图的上下文: letcontext=UIGraphicsGetCurrentContext()绘制圆弧 这里我们使用UIBezierPath类去构建路径,然后通过绘制路径的方式绘制圆弧。 //初始化一个UIBezierPath实例letarcPath=UIBezierPath()//构建Arc路径arcPath.addArcWithCenter(CGPointMake(CGFloat(self.frame.size.width/2),CGFloat(self.frame.size.height/2)),radius:CGFloat(Config.CC_ARC_DRAW_RADIUS),startAngle:CGFloat(DegreesToRadians(startAngle)),endAngle:CGFloat(DegreesToRadians(startAngle+Config.CC_ARC_DRAW_DEGREE)),clockwise:true)//把路径添加到当前绘图的上下文CGContextAddPath(context,arcPath.CGPath)//设置线段宽度CGContextSetLineWidth(context,CGFloat(Config.CC_ARC_DRAW_WIDTH))//设置线段颜色CGContextSetStrokeColorWithColor(context,strokeColor)//绘制CGContextStrokePath(context)通过如上的方式,我们就可以成功画出一个圆弧。其中: funcaddArcWithCenter(center:CGPoint,radius:CGFloat,startAngle:CGFloat,endAngle:CGFloat,clockwise:Bool)这个方法构建路径的解释是center为圆点坐标,radius为半径,startAngle为开始的弧度,endAngle为结束的弧度,clockwise表示的是顺时针还是逆时针。 绘制8个圆弧 当我们可以成功在绘图上下文绘制出圆弧时,我们应该开始着手绘制效果图中的8个圆弧,并让它在正确的位置,并带上不同颜色。 这里是效果图的一些参数设置,包括半径,宽度,颜色等信息: structConfig{staticletCC_ACTIVITY_INDICATOR_VIEW_WIDTH=40staticletCC_ARC_DRAW_PADDING=3.0staticletCC_ARC_DRAW_DEGREE=39.0staticletCC_ARC_DRAW_WIDTH=6.0staticletCC_ARC_DRAW_RADIUS=10.0staticletCC_ARC_DRAW_COLORS=[UIColor(red:242/255.0,green:242/255.0,blue:242/255.0,alpha:1.0).CGColor,UIColor(red:230/255.0,green:230/255.0,blue:230/255.0,alpha:1.0).CGColor,UIColor(red:179/255.0,green:179/255.0,blue:179/255.0,alpha:1.0).CGColor,UIColor(red:128/255.0,green:128/255.0,blue:128/255.0,alpha:1.0).CGColor,UIColor(red:128/255.0,green:128/255.0,blue:128/255.0,alpha:1.0).CGColor,UIColor(red:128/255.0,green:128/255.0,blue:128/255.0,alpha:1.0).CGColor,UIColor(r

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档