国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

iOS自定義圓形進(jìn)度提示控件

2019-10-21 18:40:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 iOS中默認(rèn)的進(jìn)度條是水平方向的進(jìn)度條,這往往不能滿足我們的需求。但是我們可以自定義類似的圓形的進(jìn)度提示控件,主要使用iOS中的繪圖機(jī)制來(lái)實(shí)現(xiàn)。這里我們要實(shí)現(xiàn)一個(gè)通過(guò)按鈕點(diǎn)擊然后圓形進(jìn)度提示不斷增加的效果。

(1)新建一個(gè)Cocoa Touch Class,注意要繼承自UIView。這個(gè)是繪制圖形的類,繪制一個(gè)圓形的背景和扇形的進(jìn)度。具體實(shí)現(xiàn)如下:

import UIKitclass 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//這個(gè)就是當(dāng)前的進(jìn)度;  func getProgressValue()->CGFloat{  return _progressValue }  func setProgressvalue(value:CGFloat){//設(shè)置進(jìn)度;  _progressValue = value  setNeedsDisplay() }  override func drawRect(rect: CGRect) {//繪制圓形背景和扇形進(jìn)度;  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)界面中拖入一個(gè)按鈕,拖拽Action事件。在ViewController中實(shí)現(xiàn)如下:

import UIKitclass 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)  }  //點(diǎn)擊按鈕,增加進(jìn)度 @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)最后的實(shí)現(xiàn)效果如下:

iOS,提示控件

iOS,提示控件

對(duì)于其他的觸發(fā)事件,也可以使用這個(gè)自定義圓形進(jìn)度控件來(lái)進(jìn)行提示。

github主頁(yè):地址  。歡迎大家訪問(wèn)!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭觉县| 河源市| 昌图县| 敦煌市| 武夷山市| 河津市| 太仆寺旗| 长治市| 宝丰县| 柯坪县| 南皮县| 霍邱县| 上犹县| 广南县| 迭部县| 屏南县| 乌鲁木齐县| 兰溪市| 龙泉市| 开鲁县| 麦盖提县| 佳木斯市| 临桂县| 五大连池市| 南丹县| 沙河市| 逊克县| 广河县| 古交市| 南京市| 丰台区| 海林市| 林甸县| 巍山| 白朗县| 乳山市| 锡林郭勒盟| 石楼县| 漳浦县| 新宁县| 青海省|