Swift 定义一个渐变进度条,在项目中的实际应用
栏目: Objective-C · 发布时间: 5年前
内容简介:将项目链接demo里,进度条代码拖 PopProgressBar.swift 这个文件按照在ViewController里的使用即可[从gif图可以看出该控件由1.半透明的黑底PopProgressBar,2.进度条progressView。3.移动的提示hintBtn
当然这是自定义弹框ZHFToolBox的很小一部分:渐变进度条。
将项目链接demo里,进度条代码拖 PopProgressBar.swift 这个文件按照在ViewController里的使用即可
先放上链接地址:
[ https://github.com/FighterLightning/ZHFToolBox.git]
再来看效果图:
2.gif
这是为自定义弹框添加的一个渐变进度条。
自定义这个进度条的思路:
一、结构分析
从gif图可以看出该控件由1.半透明的黑底PopProgressBar,2.进度条progressView。3.移动的提示hintBtn
//自定义一个继承UIView 的PopProgressBar视图 class PopProgressBar: UIView //背景区域的颜色和透明度 var backgroundColor1:UIColor = UIColor.init(red: 0, green: 0, blue: 0, alpha: 0.4) //进度条view var progressView: UIView = UIView() //提示按钮 var hintBtn: UIButton! var beforeValue :CGFloat = 0 //前一个值 var displayLink: CADisplayLink! //定时器 承接控制器里的定时器,删除view时保证定时器关闭 var path: UIBezierPath! var progressLayer :CAShapeLayer!
二、构建PopProgressBar视图初始化代码及相关代码
//初始化视图 func initPopBackGroundView() -> PopProgressBar{ } //弹出View func addAnimate(view:PopProgressBar) { } //添加进度条 func addProgressView() { } //为进度条添加遮罩,及layer @objc func gradentWith(frame:CGRect) { } //当前进度 func passValue(currentValue: CGFloat,allValue: CGFloat) { } //移除或者中断进度 @objc func tapBtnAndcancelBtnClick() { }
三、在ViewController里的使用
//1定义一下 var progressBar: PopProgressBar! //进度条 var displayLink: CADisplayLink! //定时器 var currentValue: CGFloat = 0; //2.在需要加载进度条的方法里实现 //弹出一个模拟渐变进度条 currentValue = 0 progressBar = PopProgressBar() progressBar.addAnimate(view: progressBar.initPopBackGroundView()) //定时器模拟实时数据更新 displayLink = CADisplayLink.init(target: self, selector: #selector(displayLinkRun)) displayLink.add(to: RunLoop.current, forMode: RunLoop.Mode.defaultRunLoopMode) progressBar.displayLink = displayLink //3.模拟实时数据更新调用 @objc func displayLinkRun(){ if currentValue > 1 { //加载完成 关闭定时器,隐藏进度条 displayLink.invalidate() displayLink = nil progressBar.removeFromSuperview() } else{ currentValue = currentValue + 0.005; progressBar.passValue(currentValue: currentValue, allValue: 1.0) } }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- iOS WHGradientHelper(线性、径向渐变;渐变动画;Lable字体渐变及动画)
- Flutter 中渐变的高级用法
- 沉浸式渐变图片轮播器
- CSS3 渐变(Gradients)
- java – 不同dpi的径向渐变
- 简易的iOS导航栏颜色渐变方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Zero to One
Peter Thiel、Blake Masters / Crown Business / 2014-9-16 / USD 27.00
“This book delivers completely new and refreshing ideas on how to create value in the world.” - Mark Zuckerberg, CEO of Facebook “Peter Thiel has built multiple breakthrough companies, and ......一起来看看 《Zero to One》 这本书的介绍吧!