iOS自定义圆形进度提示控件

所属分类: 软件编程 / IOS 阅读数: 1685
收藏 0 赞 0 分享

 iOS中默认的进度条是水平方向的进度条,这往往不能满足我们的需求。但是我们可以自定义类似的圆形的进度提示控件,主要使用iOS中的绘图机制来实现。这里我们要实现一个通过按钮点击然后圆形进度提示不断增加的效果。

(1)新建一个Cocoa Touch Class,注意要继承自UIView。这个是绘制图形的类,绘制一个圆形的背景和扇形的进度。具体实现如下:

import UIKit

class ProgressControl: UIView {

 
 override init(frame: CGRect) {
 super.init(frame: frame)
 
 self.backgroundColor = UIColor(white: 1, alpha: 0)//初始化绘图背景为白色;
 }
 
 required init(coder aDecoder: NSCoder) {
 super.init(coder: aDecoder)
 }

 private var _progressValue:CGFloat = 0//这个就是当前的进度;
 
 func getProgressValue()->CGFloat{
 
 return _progressValue
 }
 
 func setProgressvalue(value:CGFloat){//设置进度;
 
 _progressValue = value
 
 setNeedsDisplay()
 }

 
 override func drawRect(rect: CGRect) {//绘制圆形背景和扇形进度;
 
 var context = UIGraphicsGetCurrentContext()
 
 var r = rect.width/2
 
 CGContextAddArc(context, r, r, r, 0, 3.1415926 * 2 , 0)
 CGContextSetRGBFillColor(context, 0.5, 0.5, 0.5, 1)
 CGContextFillPath(context)
 
 CGContextAddArc(context, r, r, r, 0, 3.1415926 * 2 * _progressValue, 0)
 CGContextAddLineToPoint(context, r, r)
 CGContextSetRGBFillColor(context, 0, 0, 1, 1)
 CGContextFillPath(context)
 
 }
 
}

(2)界面中拖入一个按钮,拖拽Action事件。在ViewController中实现如下:

import UIKit

class ViewController: UIViewController {

 var progressControl:ProgressControl!
 
 override func viewDidLoad() {
 super.viewDidLoad()

 
 progressControl = ProgressControl(frame:CGRect(x: 100, y: 100, width: 100, height: 100))
 self.view.addSubview(progressControl)
 
 }
 
 //点击按钮,增加进度
 @IBAction func addProgressValuePressed(sender: UIButton) {
 
 progressControl.setProgressvalue(progressControl.getProgressValue()+0.1)
 
 }

 override func didReceiveMemoryWarning() {
 super.didReceiveMemoryWarning()
 // Dispose of any resources that can be recreated.
 }


}

(3)最后的实现效果如下:

对于其他的触发事件,也可以使用这个自定义圆形进度控件来进行提示。

github主页:地址  。欢迎大家访问!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

iOS 仿百度外卖-首页重力感应的实例

这篇文章主要介绍了iOS 仿百度外卖-首页重力感应的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
收藏 0 赞 0 分享

iOS实现时间显示几分钟前,几小时前以及刚刚的方法示例

这篇文章主要介绍了如何利用iOS实现时间显示是在几小时前,几分钟前以及刚刚的格式,类似大家在qq空间和朋友圈微博看到的效果,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
收藏 0 赞 0 分享

iOS 条码及二维码扫描(从相册中读取条形码/二维码)及扫码过程中遇到的坑

本文主要给大家介绍ios中从手机相册中读取条形码和二维码的问题及解决办法,需要的朋友参考下
收藏 0 赞 0 分享

IOS Cache设计详细介绍及简单示例

这篇文章主要介绍了IOS Cache设计详细介绍及简单示例的相关资料,Cache的目的是为了追求更高的速度体验,Cache的源头是两种数据读取方式在成本和性能上的差异,需要的朋友可以参考下
收藏 0 赞 0 分享

iOS本地动态生成验证码的方法

这篇文章主要介绍了iOS本地动态生成验证码的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

iOS绘制3D饼图的实现方法

饼图常用于统计学模块。常见的一般为2D饼图,这篇文章主要介绍了iOS绘制3D饼图的实现方法,3D饼图更加立体,用户的好感度也比较高,下面需要的朋友可以参考借鉴,一起来看看吧。
收藏 0 赞 0 分享

谈谈iOS开发之JSON格式数据的生成与解析

JSON格式取代了xml给网络传输带来了很大的便利,本篇文章主要介绍了iOS开发:对象直接转化成JSON详解,具有一定的参考价值,有兴趣的可以了解一下。
收藏 0 赞 0 分享

IOS 身份证校验详细介绍及示例代码

这篇文章主要介绍了IOS 身份证校验详细介绍及示例代码的相关资料,这里对身份校验比较详细,附有简单实例,需要的朋友可以参考下
收藏 0 赞 0 分享

IOS 自定义UICollectionView的头视图或者尾视图UICollectionReusableView

这篇文章主要介绍了IOS 自定义UICollectionView的头视图或者尾视图UICollectionReusableView的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

IOS 仿支付宝支付屏幕亮度变化机制

这篇文章主要介绍了IOS 仿支付宝支付屏幕亮度变化机制的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多