BreatheController.m 6.6 KB
//
//  BreatheController.m
//  DreamSleep
//
//  Created by peter on 2022/4/8.
//

#import "BreatheController.h"
#import <Lottie.h>

@interface BreatheController () <UIPickerViewDataSource, UIPickerViewDelegate>
@property (nonatomic, strong) LOTAnimationView *zoomView;
@property (nonatomic, strong) LOTAnimationView *rotateView;
@property (nonatomic, strong) UIPickerView *pickerView;
@property (nonatomic, strong) UILabel *timeLb;
@property (nonatomic, strong) UILabel *minuteLb;
@property (nonatomic, strong) UIButton *starBtn;
@property (nonatomic, strong) NSArray *dataArr;
@property (nonatomic, assign) NSInteger timeAccount;
@property (nonatomic, copy) NSString *rotateLottieFile;
@property (nonatomic, copy) NSString *zoomLottieFile;
@end

@implementation BreatheController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = ColorFromHex(0x161E38);
    self.dataArr = @[@"1",@"2",@"3",@"4",@"5"];
    self.rotateLottieFile = self.style == LottieStyleBalance ? @"relax_normal_lottie.json" : @"478normal_lottie.json";
    self.zoomLottieFile = self.style == LottieStyleBalance ? @"relax_lottie.json" : @"478_lottie.json";
    
    [self initView];
}

- (void)initView {
    [self.view addSubview:self.rotateView];
    [self.view addSubview:self.zoomView];
    [self.view addSubview:self.pickerView];
    
    self.timeLb = [UILabel new];
    self.timeLb.text = @"放松时长";
    [self.view addSubview:self.timeLb];
    self.timeLb.textColor = [UIColor whiteColor];
    self.timeLb.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
    [self.timeLb sizeToFit];
    
    self.minuteLb = [UILabel new];
    self.minuteLb.text = @"分钟";
    [self.view addSubview:self.minuteLb];
    self.minuteLb.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium];
    self.minuteLb.textColor = [UIColor whiteColor];
    [self.minuteLb sizeToFit];
    
    [self.view addSubview:self.starBtn];
    
    [self.rotateView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.height.equalTo(@162);
        make.centerX.equalTo(self.view);
        make.topMargin.equalTo(self.view).offset(100);
    }];
    [self.zoomView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.center.equalTo(self.view);
        make.leftMargin.equalTo(self.view).offset(90);
        make.rightMargin.equalTo(self.view).offset(-90);
        make.height.equalTo(@300);
    }];
    [self.pickerView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.rotateView.mas_bottom).offset(30);
        make.left.equalTo(self.timeLb.mas_right);
        make.right.equalTo(self.minuteLb.mas_left);
        make.height.equalTo(@65);
    }];
    [self.timeLb mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self.rotateView);
        make.centerY.equalTo(self.pickerView.mas_centerY);
    }];
    [self.minuteLb mas_makeConstraints:^(MASConstraintMaker *make) {
        make.right.equalTo(self.rotateView);
        make.centerY.equalTo(self.pickerView.mas_centerY);
    }];
    [self.starBtn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.pickerView.mas_bottom).offset(50);
        make.width.equalTo(@160);
        make.centerX.equalTo(self.zoomView.mas_centerX);
        make.height.equalTo(@40);
    }];
}

- (void)startBtnClick:(UIButton *)sender {
    sender.selected = !sender.selected;
    self.rotateView.hidden = YES;
    self.timeLb.hidden = YES;
    self.minuteLb.hidden = YES;
    self.starBtn.hidden = YES;
    self.pickerView.hidden = YES;
    self.zoomView.hidden = NO;
    
    //    self.allAccount = self.timeAccount * 60;
    //    self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerd:) userInfo:nil repeats:YES];
    //    [self.streamer play];
}

#pragma mark - UIPickerViewDataSource && UIPickerViewDelegate
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return self.dataArr.count;
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    self.timeAccount = [[self.dataArr objectAtIndex:row] integerValue];
}

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
    return 35;
}

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
    return 70;
}

- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {
    NSString *titleString = [self.dataArr objectAtIndex:row];
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:titleString];
    NSRange range = [titleString rangeOfString:titleString];
    [attributedString addAttribute:NSForegroundColorAttributeName value:BrandColor range:range];
    [attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18] range:range];
    if (@available(iOS 14.0, *)) {
        pickerView.subviews[1].backgroundColor = DSClearColor;
    }
    return attributedString;
}

- (LOTAnimationView *)rotateView {
    if(!_rotateView) {
        _rotateView = [LOTAnimationView animationNamed:self.rotateLottieFile];
        _rotateView.contentMode = UIViewContentModeScaleAspectFit;
        _rotateView.loopAnimation = YES;
        [_rotateView playWithCompletion:^(BOOL animationFinished) {
            DSLog(@"rotateView...");
        }];
        _rotateView.hidden = NO;
    }
    return _rotateView;
}

- (LOTAnimationView *)zoomView {
    if(!_zoomView) {
        _zoomView = [LOTAnimationView animationNamed:self.zoomLottieFile];
        _zoomView.contentMode = UIViewContentModeScaleAspectFit;
        _zoomView.loopAnimation = YES;
        _zoomView.hidden = YES;
        [_zoomView playWithCompletion:^(BOOL animationFinished) {
            DSLog(@"zoomView...");
        }];
    }
    return _zoomView;
}

- (UIPickerView *)pickerView {
    if (!_pickerView) {
        _pickerView = [UIPickerView new];
        _pickerView.delegate = self;
        _pickerView.dataSource = self;
    }
    return _pickerView;
}

- (UIButton *)starBtn {
    if (!_starBtn) {
        _starBtn = [UIButton new];
        _starBtn.layer.cornerRadius = 20;
        _starBtn.layer.masksToBounds = YES;
        [_starBtn addTarget:self action:@selector(startBtnClick:) forControlEvents:UIControlEventTouchUpInside];
        _starBtn.titleLabel.font = [UIFont systemFontOfSize:16];
        _starBtn.backgroundColor = ColorFromHex(0x62C3D5);
        [_starBtn setTitle:@"开始放松" forState:UIControlStateNormal];
    }
    return _starBtn;
}

@end