ifish/Ifish/controllers/IfishTabControllers/设备/DengJi/View/IfishDengjiProgress.m

129 lines
3.3 KiB
Objective-C

//
// IfishDengjiProgress.m
// CollectionViewTest
//
// Created by imac on 17/2/28.
// Copyright © 2017年 xiang. All rights reserved.
//
#import "IfishDengjiProgress.h"
static const CGFloat kProgressViewPonitMinH = 10.0f;
static const CGFloat kProgressViewPonitW = 10.0f;
@interface IfishDengjiProgress ()
@property (nonatomic, strong) UIView *gressView;
@property (nonatomic, strong) UIView *pointView;
@property (nonatomic, strong) UIView *trackView;
@end
//试图最小高度不要小于十
@implementation IfishDengjiProgress
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
-(UIView*)gressView
{
if (!_gressView) {
_gressView = [[UIView alloc] initWithFrame:CGRectMake(0,0,0, self.frame.size.height)];
_gressView.backgroundColor = self.progressColor;
[self addSubview:_gressView];
}
return _gressView;
}
-(UIView*)pointView{
if (!_pointView) {
_pointView = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.gressView.frame)- kProgressViewPonitW, 0, kProgressViewPonitW, self.frame.size.height)];
_pointView.layer.masksToBounds = YES;
CGFloat ViewW = self.frame.size.height - kProgressViewPonitMinH;
_pointView.layer.cornerRadius = ViewW/2;
_pointView.backgroundColor = self.pointColor;
[self addSubview:_pointView];
}
return _pointView;
}
-(UIView *)trackView{
if (!_trackView) {
_trackView = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMaxX(self.gressView.frame), CGRectGetMinY(self.gressView.frame), 0, self.frame.size.height)];
_trackView.backgroundColor = self.trackColor;
[self addSubview:_trackView];
}
return _trackView;
}
- (void)setProgress:(float)progress
{
if (progress >= 1.0) {
_progress = 1.0;
}
else if (progress <= 0) {
_progress = 0.0;
}
else {
_progress = progress;
}
_gressView.frame = CGRectMake(0, 0, _progress * self.frame.size.width, self.frame.size.height);
}
- (void)setProgressColor:(UIColor *)progressColor
{
_progressColor = progressColor;
_gressView.backgroundColor = progressColor;
}
- (void)layoutSubviews
{
[super layoutSubviews];
CGFloat ViewH = self.frame.size.height - kProgressViewPonitMinH;
if (ViewH<0) {
//此时不显示圆点
ViewH = self.frame.size.height;
}
CGFloat oriY = self.frame.size.height/2 - ViewH/2;
self.gressView.frame = CGRectMake(0,oriY, _progress * self.frame.size.width, ViewH);
CGFloat poitH= self.frame.size.height - 4;
self.pointView.frame = CGRectMake(CGRectGetMaxX(self.gressView.frame)- ViewH,self.frame.size.height/2 - poitH/2, ViewH, poitH);
self.trackView.frame = CGRectMake(CGRectGetMaxX(self.gressView.frame), CGRectGetMinY(self.gressView.frame),(1-_progress) * self.frame.size.width, ViewH);
if (_progress==0||_progress ==1) {
self.pointView.hidden = YES;
}else{
self.pointView.hidden = NO;
}
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end