// // 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) } }
浙公网安备 33010602011771号