swift实现自定义圆环进度提示效果

 更新时间:2016年05月18日 16:51:34   作者:韩万杰  
这篇文章主要为大家详细介绍了swift实现自定义圆环进度提示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了swift圆环进度提示效果的实现代码,供大家参考,具体内容如下

效果图:

实现代码:

/
// ViewController.swift
// PureSwiftAuto
//
// Created by 王木木 on 16/5/17.
// Copyright © 2016年 王木木. All rights reserved.
//
 
import UIKit
 
class ViewController: UIViewController {
   
  let cireView = cireview.newAutoLayoutView()
   
  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    creatCire()
  }
   
  func creatCire(){
    self.view.addSubview(cireView)
    self.cireView.value = 2
    self.cireView.maximumValue = 100
    self.cireView.backgroundColor = UIColor.yellowColor()
    self.cireView.frame = CGRectMake(100, 100, 100, 100)
    wangmumu()
  }
   
  func wangmumu(){
     
    self.cireView.value += 2
     
    if self.cireView.value == 90 {return}
     
    self.performSelector("wangmumu", withObject: self, afterDelay: 0.2)
     
  }
   
}
 
 
class cireview: UIView{
   
  var value: CGFloat = 0 {
    didSet {
      self.setNeedsDisplay()
    }
  }
   
  var maximumValue: CGFloat = 0 {
    didSet { self.setNeedsDisplay() }
  }
  override init(frame: CGRect) {
    super.init(frame: frame)
    self.opaque = false
  }
   
   
  override func drawRect(rect: CGRect) {
    super.drawRect(rect)
     
    //线宽度
    let lineWidth: CGFloat = 10.0
    //半径
    let radius = CGRectGetWidth(rect) / 2.0 - lineWidth
    //中心点x
    let centerX = CGRectGetMidX(rect)
    //中心点y
    let centerY = CGRectGetMidY(rect)
    //弧度起点
    let startAngle = CGFloat(-90 * M_PI / 180)
    //弧度终点
    let endAngle = CGFloat(((self.value / self.maximumValue) * 360 - 90) ) * CGFloat(M_PI) / 180
     
    //创建一个画布
    let context = UIGraphicsGetCurrentContext()
     
    //画笔颜色
    CGContextSetStrokeColorWithColor(context, UIColor.blueColor().CGColor)
     
    //画笔宽度
    CGContextSetLineWidth(context, lineWidth)
     
    //(1)画布 (2)中心点x(3)中心点y(4)圆弧起点(5)圆弧结束点(6) 0顺时针 1逆时针
    CGContextAddArc(context, centerX, centerY, radius, startAngle, endAngle, 0)
     
    //绘制路径
    CGContextStrokePath(context)
     
    //画笔颜色
    CGContextSetStrokeColorWithColor(context, UIColor.darkGrayColor().CGColor)
     
    //(1)画布 (2)中心点x(3)中心点y(4)圆弧起点(5)圆弧结束点(6) 0顺时针 1逆时针
    CGContextAddArc(context, centerX, centerY, radius, startAngle, endAngle, 1)
     
    //绘制路径
    CGContextStrokePath(context)
     
  }
   
  required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }
   
}

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

相关文章

  • Swift中重写和重载的使用与对比总结

    Swift中重写和重载的使用与对比总结

    这篇文章主要给大家介绍了关于Swift中重写和重载的使用方法,以及重写和重载的对比分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • 使用swift实现计算器功能

    使用swift实现计算器功能

    这篇文章主要为大家详细介绍了使用swift实现计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Swift Error重构的基础示例详解

    Swift Error重构的基础示例详解

    这篇文章主要为大家介绍了Swift Error基础错误处理的方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • swift 错误处理do catch try try!使用详解

    swift 错误处理do catch try try!使用详解

    这篇文章主要介绍了swift 错误处理do catch try try!使用详解的相关资料,需要的朋友可以参考下
    2023-03-03
  • Swift教程之字符串和字符详解

    Swift教程之字符串和字符详解

    这篇文章主要介绍了Swift教程之字符串和字符详解,本文讲解了字符串常量、初始化一个空串、变长字符串、字符串不是指针,而是实际的值、字符等内容,需要的朋友可以参考下
    2015-01-01
  • RxSwift发送及订阅 Subjects、Variables代码示例

    RxSwift发送及订阅 Subjects、Variables代码示例

    这篇文章主要介绍了RxSwift发送及订阅 Subjects、Variables代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Swift和C语言混合编程教程

    Swift和C语言混合编程教程

    这篇文章主要介绍了Swift和C语言混合编程教程,介绍基本数据类型对比、指针、常量等内容,需要的朋友可以参考下
    2014-07-07
  • Swift快速集成下拉刷新和上拉加载更多示例代码

    Swift快速集成下拉刷新和上拉加载更多示例代码

    这篇文章主要介绍了Swift快速集成下拉刷新和上拉加载更多示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Swift中的可变参数函数介绍

    Swift中的可变参数函数介绍

    这篇文章主要介绍了Swift中的可变参数函数介绍,本文实现了和Objective-C调用方法一样的变参数函数,需要的朋友可以参考下
    2015-01-01
  • swift实现简单的计算器

    swift实现简单的计算器

    这篇文章主要为大家详细介绍了swift实现简单的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论