| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //
- // BGNameSlider.m
- // BuguLive
- //
- // Created by xfg on 2017/2/17.
- // Copyright © 2017年 xfg. All rights reserved.
- //
- #import "BGNameSlider.h"
- @implementation BGNameSlider
- - (id)init
- {
- self = [super init];
- if (self)
- {
- self.nameL = [[UILabel alloc] init];
- self.nameL.textColor = kAppGrayColor1;
- self.nameL.textAlignment = NSTextAlignmentCenter;
- [self addSubview:_nameL];
-
- self.valueL = [[UILabel alloc] init];
- self.valueL.textColor = kAppGrayColor1;
- self.valueL.textAlignment = NSTextAlignmentCenter;
- [self addSubview:_valueL];
-
- self.slider = [[UISlider alloc] init];
- self.slider.minimumValue = 0;
- self.slider.maximumValue = 100;
- [self.slider setThumbImage:[UIImage imageNamed:@"fw_relive_slider_thumb"] forState:UIControlStateNormal];
- self.slider.minimumTrackTintColor = kAppMainColor;
- [self addSubview:_slider];
- [_slider addTarget:self action:@selector(onSlider:) forControlEvents:UIControlEventValueChanged];
- self.onSliderBlock = nil;
- _normalValue = (_slider.value - _slider.minimumValue) / _slider.maximumValue;
- _precision = 0;
- }
- return self;
- }
- - (void)setFrame:(CGRect)frame
- {
- [super setFrame:frame];
- [self layoutSlider];
- }
- - (void)layoutSlider
- {
- CGFloat wdt = self.frame.size.width;
- CGFloat hgt = self.frame.size.height;
- [_nameL sizeToFit];
- [_valueL sizeToFit];
-
- CGFloat wdtN = _nameL.frame.size.width + 10;
- CGFloat wdtV = _valueL.frame.size.width + 10;
- CGFloat wdtS = wdt - wdtN - wdtV;
- _nameL.frame = CGRectMake(0, 0, wdtN, hgt);
- _slider.frame = CGRectMake(wdtN, 0, wdtS, hgt);
- _valueL.frame = CGRectMake(wdtN+wdtS, 0,wdtV, hgt);
- }
- - (void)updateValue
- {
- float val = _slider.value;
- if (_precision == 0){
- _valueL.text = [NSString stringWithFormat:@"%d", (int)val];
- }
- else {
- NSString *fmt =[NSString stringWithFormat:@"%%0.%df", _precision];
- _valueL.text = [NSString stringWithFormat:fmt, val];
- }
- [self layoutSlider];
- _normalValue = (_slider.value - _slider.minimumValue) / _slider.maximumValue;
- }
- //UIControlEventValueChanged
- - (void)onSlider:(id)sender
- {
- [self updateValue];
- if (_onSliderBlock)
- {
- _onSliderBlock(self);
- }
- }
- @synthesize normalValue = _normalValue;
- - (float)normalValue
- {
- return _normalValue;
- }
- - (void)setNormalValue:(float )val
- {
- _slider.value = val * _slider.maximumValue + _slider.minimumValue;
- [self updateValue];
- }
- @end
|