服务器之家

服务器之家 > 正文

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

时间:2021-05-03 17:00     来源/作者:乞力马扎罗的雪CYF

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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中实现如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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)最后的实现效果如下:

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

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

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

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

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

原文链接:https://blog.csdn.net/CHENYUFENG1991/article/details/47754201

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部