iOS專案開發實戰——自定義圓形進度提示控制元件
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主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- 自定義圓形進度條控制元件控制元件
- Android自定義圓形進度條Android
- ios自定義圓環進度條iOS
- [-Flutter 自定義元件-] 圓形進度條Flutter元件
- [MAUI 專案實戰] 手勢控制音樂播放器(四):圓形進度條UI播放器
- 鴻蒙專案實戰(三):自定義彈窗開發實踐鴻蒙
- Android 自定義 View:包含多種狀態的下載用圓形進度條AndroidView
- Android 自定義圓形旋轉進度條,仿微博頭像載入效果Android
- iOS自定義控制元件 SlideriOS控制元件IDE
- iOS自定義控制元件 AlertViewiOS控制元件View
- iOS自定義控制元件 SegmentiOS控制元件
- 【Android】自定義樹形控制元件Android控制元件
- Flutter 波浪圓形進度條Flutter
- Flutter 自定義 Widget 之餅形圖實戰Flutter
- iOS自定義控制元件:簡易下拉控制元件iOS控制元件
- iOS 自定義拖拽式控制元件:QiDragViewiOS控制元件View
- Flutter 開發實戰——自定義省略字尾Flutter
- Flutter實現圓形波浪進度球【canvas+animation】FlutterCanvas
- 如何開發FineReport的自定義控制元件?控制元件
- SpringBoot專案實戰(7):自定義異常處理介面Spring Boot
- iOS 自定義卡片式控制元件:QiCardViewiOS控制元件View
- 自定義View事件之進階篇(四)-自定義Behavior實戰View事件
- 自定義View事件篇進階篇(二)-自定義NestedScrolling實戰View事件
- 新開專案 TetGenCAD小型系統開發進度實錄
- Android自定義控制元件 帶文字提示的SeekBarAndroid控制元件
- flask 專案開發實戰Flask
- CSS3圓形進度條效果CSSS3
- 使用canvas繪製圓形進度條Canvas
- iOS 自定義的卡片流互動控制元件iOS控制元件
- iOS 自定義日曆(日期選擇)控制元件iOS控制元件
- iOS自定義控制元件:自定義TableView、CollectionView空資料佔點陣圖iOS控制元件View
- Android自定義View之圖片外形特效——輕鬆實現圓角和圓形圖片AndroidView特效
- Qt實現自定義控制元件QT控制元件
- 專案實戰介面開發SpringBootSpring Boot
- 自定義圓環
- 『自定義View實戰』—— 仿ios圖示下載viewViewiOS
- C# 根據BackgroundWoker非同步模型和ProgressBar控制元件,自定義進度條控制元件C#非同步模型控制元件
- iOS – RxSwift 專案實戰記錄iOSSwift
- iOS自定義控制元件:精簡的底部彈框iOS控制元件