//
|
// HIKLoadPercentView.m
|
// VideoGo
|
//
|
// Created by zhil.shi on 15/3/9.
|
// Copyright (c) 2015年 HIKVison. All rights reserved.
|
//
|
|
#import "HIKLoadPercentView.h"
|
#import "HIKLoadView.h"
|
@interface HIKLoadPercentView()
|
|
@property (strong, nonatomic,readwrite) NSString *percentStr;
|
@property (nonatomic,strong ) HIKLoadView *loadingView;
|
@property (nonatomic,strong ) UILabel *percentLable;
|
@end
|
|
@implementation HIKLoadPercentView
|
{
|
unsigned int _nLoadProcent; // 加载百分比
|
NSTimer *_tLoadTimer; // 加载定时器
|
int _nLoadSeconds; // 加载等待时间
|
}
|
#pragma mark - 初始化
|
- (instancetype)initWithFrame:(CGRect)frame percentStr:(NSString *)percentStr
|
{
|
self = [super initWithFrame:frame];
|
if(self)
|
{
|
[self p_setUp];
|
[self setShowContent:percentStr];
|
}
|
return self;
|
}
|
- (instancetype)initWithFrame:(CGRect)frame percentStr:(NSString *)percentStr percentColor:(UIColor *)color
|
{
|
self = [self initWithFrame:frame percentStr:percentStr];
|
[self.percentLable setTextColor:color];
|
return self;
|
}
|
- (NSString *)percentStr
|
{
|
return self.percentLable.text;
|
}
|
|
#pragma mark - 私有方法 相关设置
|
- (void)p_setUp
|
{
|
[self setBackgroundColor:[UIColor clearColor]];
|
[self setClipsToBounds:NO];
|
|
//loadView
|
self.loadingView = [[HIKLoadView alloc]initWithHIKLoadViewStyle:HIKLoadViewStyleSqureCornersClockWise];
|
float center_y = MIN(CGRectGetMidY(self.loadingView.frame), CGRectGetMidY(self.frame));
|
[self.loadingView setCenter:CGPointMake(self.frame.size.width/2.0,center_y)];
|
|
__weak typeof (self.loadingView) weakLodingView = self.loadingView;
|
dispatch_async(dispatch_get_main_queue(), ^{
|
[weakLodingView startSquareClcokwiseAnimation];
|
});
|
[self addSubview:self.loadingView];
|
|
//percent
|
self.percentLable = [[UILabel alloc]init];
|
[self.percentLable setBackgroundColor:[UIColor clearColor]];
|
[self.percentLable setTextAlignment:NSTextAlignmentCenter];
|
[self.percentLable setFont:[UIFont systemFontOfSize:14.0]];
|
[self.percentLable setFrame:CGRectMake(0.0, CGRectGetMaxY(self.loadingView.frame)+5,CGRectGetWidth(self.frame), 30)];
|
[self.percentLable setTextColor:[UIColor whiteColor]];
|
[self addSubview:self.percentLable];
|
|
}
|
|
#pragma mark -actions
|
|
- (void)setShowContent:(NSString *)content
|
{
|
if(content)
|
self.percentLable.text = content;
|
|
}
|
|
|
- (void)showPercentAnimation
|
{
|
self.percentLable.text = @"0%";
|
self.hidden = NO;
|
|
dispatch_async(dispatch_get_main_queue(), ^
|
{
|
[self startAdmView];
|
});
|
}
|
|
- (void)startAdmView
|
{
|
_nLoadProcent = 0;
|
// 开启定时器,用于启动百分比计算
|
if ([_tLoadTimer isValid])
|
{
|
[_tLoadTimer invalidate];
|
}
|
_tLoadTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
|
target:self
|
selector:@selector(updateWaitTime:)
|
userInfo:nil
|
repeats:YES];
|
|
}
|
|
- (void)updateWaitTime:(NSTimer *)timer
|
{
|
[self setWaitTime];
|
|
_nLoadSeconds++;
|
|
}
|
|
/** @fn setWaitTime
|
* @brief 等待百分比计数
|
* @param 无
|
* @return 无
|
*/
|
- (void)setWaitTime
|
{
|
int x = arc4random() % 15;
|
if(_nLoadProcent < 85)
|
{
|
_nLoadProcent = _nLoadProcent + x;
|
}
|
|
NSString * strTips = [NSString stringWithFormat:@"%d%%", _nLoadProcent];
|
self.percentLable.text = strTips;
|
}
|
|
|
- (void)hideRemovePercentAnimation
|
{
|
self.hidden = YES;
|
_nLoadProcent = 0;
|
self.percentLable.text = @"0%";
|
|
if ([_tLoadTimer isValid])
|
{
|
[_tLoadTimer invalidate];
|
_tLoadTimer = nil;
|
}
|
|
|
}
|
|
@end
|