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")
  }
   
}

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。