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

 更新时间:2018年06月29日 09:17:06   作者:乞力马扎罗的雪CYF  
这篇文章主要为大家详细介绍了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主页:地址  。欢迎大家访问!

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

相关文章

  • IOS实现聊天界面底部菜单栏效果

    IOS实现聊天界面底部菜单栏效果

    本文给大家分享的是放boss直聘当中的聊天信息界面,主要思路是约束动画,实现代码比较简单,下面小编通过本文给大家分享IOS实现聊天界面底部菜单栏效果,需要的的朋友参考下吧
    2017-09-09
  • 解决SDK注入权限验证安卓正常,IOS出现config fail的方法

    解决SDK注入权限验证安卓正常,IOS出现config fail的方法

    这篇文章主要介绍了解决SDK注入权限验证安卓正常,IOS出现config fail的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • iOS利用UIScrollView实现无限滚动效果

    iOS利用UIScrollView实现无限滚动效果

    这篇文章主要给大家介绍了iOS如何利用UIScrollView实现无限滚动的效果,首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。感兴趣的朋友们下面跟着小编一起来学习学习吧。
    2016-12-12
  • iOS 12适配以及问题小记

    iOS 12适配以及问题小记

    苹果官方在上个月推送了iOS12系统,作为一名开发者当然要紧跟更新技术,所以下面这篇文章主要给大家介绍了关于iOS 12适配以及一些问题,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • ios使用AVFoundation读取二维码的方法

    ios使用AVFoundation读取二维码的方法

    这篇文章主要介绍了ios使用AVFoundation读取二维码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • iOS使用pageViewController实现多视图滑动切换

    iOS使用pageViewController实现多视图滑动切换

    这篇文章主要为大家详细介绍了iOS使用pageViewController实现多视图滑动切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 在uiview 的tableView中点击cell进入跳转到另一个界面的实现方法

    在uiview 的tableView中点击cell进入跳转到另一个界面的实现方法

    这篇文章主要介绍了在uiview 的tableView中点击cell进入跳转到另一个界面的实现方法,首先重写uiviewcontrol方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • 浅谈强大易用支持URL Rewrite的iOS路由库FFRouter

    浅谈强大易用支持URL Rewrite的iOS路由库FFRouter

    FRouter 是 iOS 中一个强大且易用的 URL 路由库,支持 URL Rewrite,基于匹配查找 URL,效率高。非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • 浅析iOS的Xcconfig

    浅析iOS的Xcconfig

    本篇文章介绍IOS中Xcconfig的相关知识内容,有兴趣的朋友学习下吧。
    2018-01-01
  • Xcode 9下适配iPhoneX导致iOS 10不兼容问题的解决方法

    Xcode 9下适配iPhoneX导致iOS 10不兼容问题的解决方法

    这篇文章主要给大家介绍了关于Xcode 9下适配iPhoneX导致iOS 10不兼容问题的解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04

最新评论