//
//  ProgressView.swift
//  LolBox
//
//  Created by 徐风 on 15-5-15.
//  Copyright (c) 2015年 徐风. All rights reserved.
//

import Foundation
import UIKit

class ProgressView :UIView {
    
    var  message:NSString = "请稍等...."//要显示的字
    var  viewRect:CGRect!//view的矩形位置
    var  uiView:UIView!
    var  screenWidth:CGFloat!// = 0.0屏幕的宽度
    var  screenHeight:CGFloat!//屏幕的高度
    var  viewLength:CGFloat = 0.0//view的边长
    let activityIndicator:UIActivityIndicatorView!//
    var secondsCountdown:Int=5//计时时间
    var countDownTimer:NSTimer?
    
    required init(coder aDecoder: NSCoder) {
        
        super.init(coder:aDecoder)
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        //获取屏幕的高度和宽度 得到控件的边长
        var screenRect:CGRect=UIScreen.mainScreen().bounds
        screenWidth=screenRect.size.width
        screenHeight=screenRect.size.height
        viewLength=screenWidth/4
        viewRect=CGRect(x: (screenWidth-viewLength)/2, y: (screenHeight-viewLength)/2-20, width: viewLength, height: viewLength)
        self.frame=screenRect
        //设置为透明色
        self.backgroundColor=UIColor.clearColor()
        //风火轮
        activityIndicator=UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.WhiteLarge)
        activityIndicator.frame=CGRectMake(CGRectGetMidX(viewRect), CGRectGetMidY(viewRect), 0,0)
        
        self.addSubview(activityIndicator)
        
        self.hidden=true
    }
    
    override init() {
        super.init()
    }
    
    func show(){
        activityIndicator.startAnimating()
        self.hidden=false
        countDownTimer=NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "cutDowntime", userInfo: nil, repeats: true)
    }
    
    func hidden(){
        activityIndicator.stopAnimating()
        self.hidden=true
    }
    
    func cutDowntime(){
        secondsCountdown--
        if(secondsCountdown==0){
            hidden()
            countDownTimer?.invalidate()
            secondsCountdown=5
        }
    }
    
    override func drawRect(rect: CGRect) {

            //得到画笔
            var cgRef:CGContextRef=UIGraphicsGetCurrentContext()
            //// 填充色:灰度0.0,透明度:0.1
            //CGContextSetGrayFillColor(cgRef, 0.0, 0.25)
            CGContextSetRGBFillColor(cgRef, 0, 0, 0, 0.8)
        
            //弧形的半径
            let radius:CGFloat=10.0
            //开始路径
            CGContextBeginPath(cgRef)
            //画笔移动到左上角圆弧处
            CGContextMoveToPoint(cgRef, CGRectGetMinX(viewRect)+radius, CGRectGetMinY(viewRect))
        
            //画笔移动到左下角圆弧处
            CGContextMoveToPoint(cgRef, CGRectGetMinX(viewRect), CGRectGetMinY(viewRect)-radius)
            //画笔移动到右下角圆弧处
            CGContextMoveToPoint(cgRef, CGRectGetMaxX(viewRect)-radius, CGRectGetMaxY(viewRect))
            //画笔移动到右上角圆弧处
            CGContextMoveToPoint(cgRef, CGRectGetMaxX(viewRect), CGRectGetMinY(viewRect)+radius)
            //画笔移动到右上角圆弧处
            CGContextMoveToPoint(cgRef, CGRectGetMaxX(viewRect)-radius, CGRectGetMinY(viewRect))
        
            //画左上角圆弧
            CGContextAddArcToPoint(cgRef, CGRectGetMinX(viewRect), CGRectGetMinY(viewRect), CGRectGetMinX(viewRect), CGRectGetMinY(viewRect)+radius, radius)

            //画左下角圆弧
            CGContextAddArcToPoint(cgRef, CGRectGetMinX(viewRect), CGRectGetMaxY(viewRect),CGRectGetMinX(viewRect)+radius, CGRectGetMaxY(viewRect), radius)

            //画右下角的圆弧
            CGContextAddArcToPoint(cgRef, CGRectGetMaxX(viewRect), CGRectGetMaxY(viewRect), CGRectGetMaxX(viewRect), CGRectGetMaxY(viewRect)-radius, radius)

            //画右上角的圆弧
            CGContextAddArcToPoint(cgRef, CGRectGetMaxX(viewRect), CGRectGetMinY(viewRect), CGRectGetMaxX(viewRect)-radius, CGRectGetMinY(viewRect), radius)
            
            // 关闭路径
            //CGContextClosePath(cgRef)
            
            // 填充路径,该函数自动关闭路径
            CGContextFillPath(cgRef)
        
        
    }
    
    
}

posted on 2015-05-18 20:21  青年程序猿  阅读(287)  评论(0)    收藏  举报