iOS中默認(rèn)的進度條是水平方向的進度條,這往往不能滿足我們的需求。但是我們可以自定義類似的圓形的進度提示控件,主要使用iOS中的繪圖機制來實現(xiàn)。這里我們要實現(xiàn)一個通過按鈕點擊然后圓形進度提示不斷增加的效果。
成都創(chuàng)新互聯(lián)公司是專業(yè)的五峰網(wǎng)站建設(shè)公司,五峰接單;提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行五峰網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
(1)新建一個Cocoa Touch Class,注意要繼承自UIView。這個是繪制圖形的類,繪制一個圓形的背景和扇形的進度。具體實現(xiàn)如下:
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//這個就是當(dāng)前的進度; func getProgressValue()->CGFloat{ return _progressValue } func setProgressvalue(value:CGFloat){//設(shè)置進度; _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中實現(xiàn)如下:
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)最后的實現(xiàn)效果如下:
對于其他的觸發(fā)事件,也可以使用這個自定義圓形進度控件來進行提示。
github主頁:地址 。歡迎大家訪問!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。