Commit f20edd04 cgx

完成定时播放功能

1 个父辈 f283b9c3
......@@ -153,6 +153,7 @@
D0E660022807B5AE006562F2 /* SafeSleepRequestModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E660002807B5AE006562F2 /* SafeSleepRequestModel.m */; };
D0E660052807D02C006562F2 /* UserRequestModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E660042807D02C006562F2 /* UserRequestModel.m */; };
D0E6600828080F97006562F2 /* SystemSetController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E6600728080F97006562F2 /* SystemSetController.m */; };
D0E6F1FD28290128004150E5 /* TimingView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E6F1FC28290128004150E5 /* TimingView.m */; };
D0F808F52803D4E70097899F /* Track.m in Sources */ = {isa = PBXBuildFile; fileRef = D0F808F32803D4E70097899F /* Track.m */; };
D0F808FE280421C20097899F /* ThreeMinuteController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0F808FD280421C20097899F /* ThreeMinuteController.m */; };
D0F8090428042A0B0097899F /* SafeSleepCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D0F8090328042A0B0097899F /* SafeSleepCell.m */; };
......@@ -456,6 +457,8 @@
D0E660042807D02C006562F2 /* UserRequestModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserRequestModel.m; sourceTree = "<group>"; };
D0E6600628080F97006562F2 /* SystemSetController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SystemSetController.h; sourceTree = "<group>"; };
D0E6600728080F97006562F2 /* SystemSetController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SystemSetController.m; sourceTree = "<group>"; };
D0E6F1FB28290128004150E5 /* TimingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TimingView.h; sourceTree = "<group>"; };
D0E6F1FC28290128004150E5 /* TimingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TimingView.m; sourceTree = "<group>"; };
D0F808F32803D4E70097899F /* Track.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Track.m; sourceTree = "<group>"; };
D0F808F42803D4E70097899F /* Track.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Track.h; sourceTree = "<group>"; };
D0F808FC280421C20097899F /* ThreeMinuteController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThreeMinuteController.h; sourceTree = "<group>"; };
......@@ -1068,6 +1071,8 @@
D0F9AC5D282660CC00FD7A3B /* MusicPlayerView.m */,
D0AE1E3328281B6F008CEF27 /* TimerProxy.h */,
D0AE1E3428281B6F008CEF27 /* TimerProxy.m */,
D0E6F1FB28290128004150E5 /* TimingView.h */,
D0E6F1FC28290128004150E5 /* TimingView.m */,
);
path = Home;
sourceTree = "<group>";
......@@ -1558,6 +1563,7 @@
D0930F1A2801874B006B497A /* UIViewController+Swizzling.m in Sources */,
D01C9D6728167F9D00163567 /* InfoModifyAlertView.m in Sources */,
D0BB9AA728164DFB00DB209E /* NickNameController.m in Sources */,
D0E6F1FD28290128004150E5 /* TimingView.m in Sources */,
D08F79DF281A1838000D99DD /* TZPhotoPreviewCell.m in Sources */,
D0F808FE280421C20097899F /* ThreeMinuteController.m in Sources */,
D07A4B27280E9BAA00BA0EC0 /* AccountController.m in Sources */,
......
......@@ -235,11 +235,11 @@
}
#pragma mark - UIPickerViewDataSource && UIPickerViewDelegate
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView{
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return self.minuteDatas.count;
}
......
......@@ -201,6 +201,12 @@
}
}
- (void)timerHasCountDone {
if (self.streamState == kFsAudioStreamPlaying) {
[self.audioStream pause];
}
}
#pragma mark - 隐藏导航栏
- (BOOL)isShowNavigationBar {
return YES;
......
......@@ -24,6 +24,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 上一首、播放、下一首事件
/// @param item item
- (void)playControlActionWithItem:(UIButton *)item;
/// 定时器设置时间已经到了
- (void)timerHasCountDone;
@end
/// 音频播放页面
......@@ -31,6 +34,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, weak) id<MusicPlayerViewDelegate> delegate;
@property (nonatomic, strong) SubAudioModel *audioModel;
/// 播放状态
@property (nonatomic, assign) BOOL isPlaying;
/// 音频播放模式
......
......@@ -7,6 +7,7 @@
#import "MusicPlayerView.h"
#import "SPButton.h"
#import "TimingView.h"
@interface MusicPlayerView () <UIGestureRecognizerDelegate>
@property (nonatomic, strong) UIButton *dismissBtn;
......@@ -19,9 +20,15 @@
@property (nonatomic, strong) UIButton *leftPlayBtn;
@property (nonatomic, strong) UIButton *rightPlayBtn;
@property (nonatomic,strong) SPButton *playerListBtn;
@property (nonatomic,strong) SPButton *circleBtn;
@property (nonatomic,strong) SPButton *closeBtn;
@property (nonatomic, strong) SPButton *playerListBtn;
@property (nonatomic, strong) SPButton *playModeBtn;
@property (nonatomic, strong) SPButton *timeCloseBtn;
@property (nonatomic, strong) TimingView *timingView;
@property (nonatomic, assign) NSInteger minuteIndex;
@property (nonatomic, assign) NSInteger countTime;
@property (nonatomic, assign) NSInteger totalTime;
@property (nonatomic, strong) NSTimer *timer;
@end
@implementation MusicPlayerView {
......@@ -30,7 +37,16 @@
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)]) {
self.minuteIndex = 0;
self.countTime = 60;
self.dk_backgroundColorPicker = DKColorPickerWithKey(VCViewBG);
[self buildInterface];
}
return self;
}
- (void)buildInterface {
[self addSubview:self.dismissBtn];
[self addSubview:self.audioPicIV];
[self addSubview:self.audioNameLab];
......@@ -41,8 +57,8 @@
[self addSubview:self.leftPlayBtn];
[self addSubview:self.rightPlayBtn];
[self addSubview:self.playerListBtn];
[self addSubview:self.circleBtn];
[self addSubview:self.closeBtn];
[self addSubview:self.playModeBtn];
[self addSubview:self.timeCloseBtn];
[self.audioPicIV mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.mas_centerX);
......@@ -97,20 +113,25 @@
make.width.equalTo(@80);
make.height.equalTo(@60);
}];
[self.circleBtn mas_makeConstraints:^(MASConstraintMaker *make) {
[self.playModeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.mas_bottom).offset(-36);
make.centerX.equalTo(self.mas_centerX);
make.width.equalTo(@60);
make.height.equalTo(@60);
}];
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
[self.timeCloseBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.mas_bottom).offset(-36);
make.right.equalTo(self.mas_right).offset(-23);
make.width.equalTo(@80);
make.height.equalTo(@60);
}];
}
return self;
}
- (void)dealloc {
[self.timer invalidate];
self.timer = nil;
[self.timingView removeFromSuperview];
self.timingView = nil;
}
- (void)dismiss {
......@@ -118,6 +139,7 @@
}
- (void)updatePlayerView:(SubAudioModel *)model {
_audioModel = model;
[self.audioPicIV yy_setImageWithURL:[NSURL URLWithString:model.audio_pic] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
self.audioNameLab.text = model.audio_name;
}
......@@ -128,7 +150,13 @@
self.proRightLb.text = totalTime;
}
- (void)circelBtnClick:(UIButton *)sender {
#pragma mark - 点击播放列表
- (void)didClickPlaylistAction:(UIButton *)sender {
}
#pragma mark - 切换播放模式
- (void)switchPlayModeAction:(UIButton *)sender {
SoundPlayMode mode = sender.tag;
NSString *title = sender.titleLabel.text;
NSString *normalImgName = @"single_play";
......@@ -154,16 +182,19 @@
[sender dk_setImage:DKImagePickerWithNames(normalImgName, dkImgName, normalImgName) forState:UIControlStateNormal];
}
#pragma mark - 点击定时器
- (void)didClickTimerAction:(UIButton *)sender {
[self.timingView display];
}
#pragma mark - 滑块事件
- (void)progresssBtnClick:(UISlider *)sender {
DSLog(@"progresssBtnClick:%f", sender.value);
- (void)sliderValueChanged:(UISlider *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(didSliderValueChange:)]) {
[self.delegate didSliderValueChange:sender.value];
}
}
- (void)sliderTouchDown:(UISlider *)sender {
DSLog(@"sliderTouchDown");
_tapGesture.enabled = NO;
if (self.delegate && [self.delegate respondsToSelector:@selector(didSliderTouchBegan:)]) {
[self.delegate didSliderTouchBegan:sender.value];
......@@ -171,19 +202,12 @@
}
- (void)sliderTouchUpInSide:(UISlider *)sender {
DSLog(@"sliderTouchUpInSide");
_tapGesture.enabled = YES;
if (self.delegate && [self.delegate respondsToSelector:@selector(didSliderTouchEnded:)]) {
[self.delegate didSliderTouchEnded:sender.value];
}
}
- (void)playControlAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(playControlActionWithItem:)]) {
[self.delegate playControlActionWithItem:sender];
}
}
#pragma mark - UIGestureRecognizerDelegate
- (void)actionTapGesture:(UITapGestureRecognizer *)sender {
CGPoint touchPoint = [sender locationInView:self.progressV];
......@@ -193,8 +217,13 @@
if (self.delegate && [self.delegate respondsToSelector:@selector(didSliderTouchEnded:)]) {
[self.delegate didSliderTouchEnded:value];
}
}
DSLog(@"actionTapGestureactionTapGesture:%f", value);
#pragma mark - 播放控制事件
- (void)playControlAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(playControlActionWithItem:)]) {
[self.delegate playControlActionWithItem:sender];
}
}
#pragma mark - public
......@@ -204,7 +233,22 @@
}
- (SoundPlayMode)mode {
return self.circleBtn.tag;
return self.playModeBtn.tag;
}
#pragma mark - others
- (NSString *)formattimewithtimeinterval:(NSTimeInterval)timeinterval {
int minute = 0, hour = 0, secend = timeinterval;
minute = (secend % 3600)/60;
hour = secend / 3600;
secend = secend % 60;
if (hour == 0) {
return [NSString stringWithFormat:@"%02d:%02d", minute, secend];
} else if (minute == 0){
return [NSString stringWithFormat:@"%02d",secend];
} else {
return [NSString stringWithFormat:@"%02d:%02d:%02d", hour, minute, secend];
}
}
#pragma mark - lazy
......@@ -242,7 +286,7 @@
_progressV.minimumTrackTintColor = BrandColor;
_progressV.dk_maximumTrackTintColorPicker = DKColorPickerWithColors(ColorFromHex(0xE3E1E1), ColorFromHex(0x131724), DSWhite);
[_progressV setThumbImage:[UIImage imageNamed:@"muse_slider_thumbImage"] forState:UIControlStateNormal];
[_progressV addTarget:self action:@selector(progresssBtnClick:) forControlEvents:UIControlEventValueChanged];
[_progressV addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[_progressV addTarget:self action:@selector(sliderTouchDown:) forControlEvents:UIControlEventTouchDown];
[_progressV addTarget:self action:@selector(sliderTouchUpInSide:) forControlEvents:UIControlEventTouchUpInside];
......@@ -307,7 +351,7 @@
if (!_playerListBtn) {
_playerListBtn = [[SPButton alloc] initWithImagePosition:SPButtonImagePositionTop];
_playerListBtn.imageTitleSpace = 2;
[_playerListBtn addTarget:self action:@selector(playerListBtnClick:) forControlEvents:UIControlEventTouchUpInside];
[_playerListBtn addTarget:self action:@selector(didClickPlaylistAction:) forControlEvents:UIControlEventTouchUpInside];
[_playerListBtn setTitleColor:SmallTextColor forState:UIControlStateNormal];
_playerListBtn.titleLabel.font = SysFont(12);
[_playerListBtn dk_setImage:DKImagePickerWithNames(@"playlist_icon", @"dk_playlist_icon", @"playlist_icon") forState:UIControlStateNormal];
......@@ -316,31 +360,68 @@
return _playerListBtn;
}
- (SPButton *)circleBtn {
if (!_circleBtn) {
_circleBtn = [[SPButton alloc] initWithImagePosition:SPButtonImagePositionTop];
_circleBtn.imageTitleSpace = 2;
[_circleBtn addTarget:self action:@selector(circelBtnClick:) forControlEvents:UIControlEventTouchUpInside];
[_circleBtn setTitleColor:SmallTextColor forState:UIControlStateNormal];
_circleBtn.titleLabel.font = SysFont(12);
[_circleBtn dk_setImage:DKImagePickerWithNames(@"single_play", @"dk_single_play", @"single_play") forState:UIControlStateNormal];
_circleBtn.tag = SoundPlayModeSingle;
[_circleBtn setTitle:@"单节播放" forState:UIControlStateNormal];
- (SPButton *)playModeBtn {
if (!_playModeBtn) {
_playModeBtn = [[SPButton alloc] initWithImagePosition:SPButtonImagePositionTop];
_playModeBtn.imageTitleSpace = 2;
[_playModeBtn addTarget:self action:@selector(switchPlayModeAction:) forControlEvents:UIControlEventTouchUpInside];
[_playModeBtn setTitleColor:SmallTextColor forState:UIControlStateNormal];
_playModeBtn.titleLabel.font = SysFont(12);
[_playModeBtn dk_setImage:DKImagePickerWithNames(@"single_play", @"dk_single_play", @"single_play") forState:UIControlStateNormal];
_playModeBtn.tag = SoundPlayModeSingle;
[_playModeBtn setTitle:@"单节播放" forState:UIControlStateNormal];
}
return _playModeBtn;
}
- (SPButton *)timeCloseBtn {
if (!_timeCloseBtn) {
_timeCloseBtn = [[SPButton alloc] initWithImagePosition:SPButtonImagePositionTop];
_timeCloseBtn.imageTitleSpace = 2;
[_timeCloseBtn addTarget:self action:@selector(didClickTimerAction:) forControlEvents:UIControlEventTouchUpInside];
[_timeCloseBtn setTitleColor:SmallTextColor forState:UIControlStateNormal];
_timeCloseBtn.titleLabel.font = SysFont(12);
[_timeCloseBtn dk_setImage:DKImagePickerWithNames(@"time_close_icon", @"dk_time_close_icon", @"time_close_icon") forState:UIControlStateNormal];
[_timeCloseBtn setTitle:@"定时关闭" forState:UIControlStateNormal];
}
return _timeCloseBtn;
}
- (TimingView *)timingView {
if (!_timingView) {
WS(weakSelf);
_timingView = [[TimingView alloc] initWithSureBlock:^(NSInteger index, NSArray * _Nonnull minuteDatas) {
weakSelf.minuteIndex = index;
weakSelf.countTime = 60 * [minuteDatas[index] intValue];
weakSelf.totalTime = 60 * [minuteDatas[index] intValue];
[weakSelf.timer setFireDate:[NSDate date]];
}];
}
return _timingView;
}
- (NSTimer *)timer {
if (!_timer) {
WS(weakSelf);
_timer = [NSTimer timerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) {
DSLog(@"============");
// 暂停播放
if (weakSelf.countTime == 0) {
[weakSelf.timer setFireDate:[NSDate distantFuture]];
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(timerHasCountDone)]) {
[weakSelf.delegate timerHasCountDone];
}
return _circleBtn;
}
- (SPButton *)closeBtn {
if (!_closeBtn) {
_closeBtn = [[SPButton alloc] initWithImagePosition:SPButtonImagePositionTop];
_closeBtn.imageTitleSpace = 2;
[_closeBtn addTarget:self action:@selector(timeDefineClick:) forControlEvents:UIControlEventTouchUpInside];
[_closeBtn setTitleColor:SmallTextColor forState:UIControlStateNormal];
_closeBtn.titleLabel.font = SysFont(12);
[_closeBtn dk_setImage:DKImagePickerWithNames(@"time_close_icon", @"dk_time_close_icon", @"time_close_icon") forState:UIControlStateNormal];
[_closeBtn setTitle:@"定时关闭" forState:UIControlStateNormal];
return;
}
weakSelf.countTime--;
NSString *countDownStr = [weakSelf formattimewithtimeinterval:weakSelf.countTime];
NSString *totalTimeStr = [weakSelf formattimewithtimeinterval:weakSelf.totalTime];
[weakSelf.timeCloseBtn setTitle:[NSString stringWithFormat:@"%@/%@",countDownStr, totalTimeStr] forState:UIControlStateNormal];
}];
[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
}
return _closeBtn;
return _timer;
}
@end
//
// TimingView.h
// DreamSleep
//
// Created by peter on 2022/5/9.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef void(^TimingBlock)(NSInteger index, NSArray *minuteDatas);
/// 首页和音频播放界面定时弹框
@interface TimingView : UIView
@property (nonatomic, copy) TimingBlock timingBlock;
- (instancetype)initWithSureBlock:(TimingBlock)block;
/// 显示定时器
- (void)display;
@end
NS_ASSUME_NONNULL_END
//
// TimingView.m
// DreamSleep
//
// Created by peter on 2022/5/9.
//
#import "TimingView.h"
@interface TimingView () <UIPickerViewDataSource, UIPickerViewDelegate>
@property (nonatomic, strong) UIView *bgView;
@property (nonatomic, strong) UIButton *closeBtn;
@property (nonatomic, strong) UILabel *titleLab;
@property (nonatomic, strong) UILabel *audioTimeLab;
@property (nonatomic, strong) UIPickerView *timePickerView;
@property (nonatomic, strong) UILabel *minuteLab;
@property (nonatomic, strong) UIButton *cancelBtn;
@property (nonatomic, strong) UIButton *sureBtn;
@property (nonatomic, strong) UIView *lineView;
@property (nonatomic, strong) NSArray *minuteDatas;
@property (nonatomic, assign) NSInteger currentTimeIndex;
@property (nonatomic, assign) NSInteger sureIndex;
@end
@implementation TimingView
- (instancetype)initWithSureBlock:(TimingBlock)block {
if (self = [super initWithFrame:[UIScreen mainScreen].bounds]) {
_currentTimeIndex = 0;
_timingBlock = block;
self.dk_backgroundColorPicker = DKColorPickerWithColors(ColorFromHex(0x6F7587), DSClearColor, DSWhite);
self.backgroundColor = [self.backgroundColor colorWithAlphaComponent:0.6];
NSMutableArray *tmpArr = [NSMutableArray array];
for (int i = 1; i < 121; i++) {
[tmpArr addObject:[NSString stringWithFormat:@"%d", i]];
}
self.minuteDatas = [tmpArr copy];
[self addSubview:self.bgView];
[self.bgView addSubview:self.titleLab];
[self.bgView addSubview:self.closeBtn];
[self.bgView addSubview:self.audioTimeLab];
[self.bgView addSubview:self.timePickerView];
[self.bgView addSubview:self.minuteLab];
[self.bgView addSubview:self.cancelBtn];
[self.bgView addSubview:self.sureBtn];
[self.bgView addSubview:self.lineView];
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(280, 236));
make.center.equalTo(self);
}];
[self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.top.equalTo(self.bgView).offset(20);
}];
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.titleLab);
make.top.equalTo(self.bgView).offset(15);
make.right.equalTo(self.bgView).offset(-15);
}];
[self.audioTimeLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgView).offset(63);
make.top.equalTo(self.bgView).offset(97);
}];
[self.timePickerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.audioTimeLab.mas_right);
make.right.equalTo(self.minuteLab.mas_left);
make.top.equalTo(self.titleLab.mas_bottom).offset(22);
make.bottom.equalTo(self.sureBtn.mas_top).offset(-22);
}];
[self.minuteLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.audioTimeLab);
make.right.equalTo(self.bgView).offset(-63);
}];
[self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgView);
make.bottom.equalTo(self.bgView);
make.height.equalTo(@64);
}];
[self.sureBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.bgView);
make.bottom.equalTo(self.bgView);
make.size.equalTo(self.cancelBtn);
make.left.equalTo(self.cancelBtn.mas_right);
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.bgView);
make.centerY.equalTo(self.sureBtn);
make.size.mas_equalTo(CGSizeMake(1, 40));
}];
}
return self;
}
#pragma mark - Actions
- (void)display {
[DSKeyWindow addSubview:self];
self.hidden = NO;
[self.timePickerView selectRow:self.sureIndex inComponent:0 animated:YES];
}
- (void)dismissTimingView {
self.hidden = YES;
}
- (void)sureAction {
[self dismissTimingView];
self.sureIndex = self.currentTimeIndex;
if (self.timingBlock) {
self.timingBlock(self.sureIndex, self.minuteDatas);
}
}
#pragma mark - UIPickerViewDataSource && UIPickerViewDelegate
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return self.minuteDatas.count;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
self.currentTimeIndex = row;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
UILabel *lab = [UILabel labWithTextColor:BrandColor font:SysFont(16)];
lab.frame = CGRectMake(0.0, 0.0, 70, 35);
lab.textAlignment = NSTextAlignmentCenter;
lab.text = self.minuteDatas[row];
if (@available(iOS 14.0, *)) {
pickerView.subviews[1].backgroundColor = DSClearColor;
}
return lab;
}
#pragma mark - lazy
- (UIView *)bgView {
if (!_bgView) {
_bgView = [UIView new];
_bgView.dk_backgroundColorPicker = DKColorPickerWithKey(TabBarBG);
[_bgView cornerRadius:24];
}
return _bgView;
}
- (UILabel *)titleLab {
if (!_titleLab) {
_titleLab = [UILabel dkLabWithText:@"设置时间" font:BoldFont(16)];
_titleLab.textAlignment = NSTextAlignmentCenter;
}
return _titleLab;
}
- (UIButton *)closeBtn {
if (!_closeBtn) {
_closeBtn = [UIButton new];
[_closeBtn dk_setImage:DKImagePickerWithNames(@"home_close", @"dk_home_close", @"home_close") forState:UIControlStateNormal];
[_closeBtn addTarget:self action:@selector(dismissTimingView) forControlEvents:UIControlEventTouchUpInside];
}
return _closeBtn;
}
- (UILabel *)audioTimeLab {
if (!_audioTimeLab) {
_audioTimeLab = [UILabel dkLabWithText:@"音频时长" font:SysFont(15)];
_audioTimeLab.textAlignment = NSTextAlignmentCenter;
}
return _audioTimeLab;
}
- (UIPickerView *)timePickerView {
if (!_timePickerView) {
_timePickerView = [UIPickerView new];
_timePickerView.delegate = self;
_timePickerView.dataSource = self;
}
return _timePickerView;
}
- (UILabel *)minuteLab {
if (!_minuteLab) {
_minuteLab = [UILabel dkLabWithText:@"分钟" font:SysFont(15)];
_minuteLab.textAlignment = NSTextAlignmentCenter;
}
return _minuteLab;
}
- (UIButton *)cancelBtn {
if (!_cancelBtn) {
_cancelBtn = [UIButton dkBtnTitle:@"取消设置" font:SysFont(15)];
[_cancelBtn dk_setTitleColorPicker:DKColorPickerWithKey(TEXT) forState:UIControlStateNormal];
[_cancelBtn addTarget:self action:@selector(dismissTimingView) forControlEvents:UIControlEventTouchUpInside];
}
return _cancelBtn;
}
- (UIButton *)sureBtn {
if (!_sureBtn) {
_sureBtn = [UIButton btnWithTitle:@"确定" titleColor:BrandColor font:SysFont(15)];
[_sureBtn addTarget:self action:@selector(sureAction) forControlEvents:UIControlEventTouchUpInside];
}
return _sureBtn;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [UIView new];
_lineView.dk_backgroundColorPicker = DKColorPickerWithColors(ColorFromHex(0xE6E6E6), DarkColor, DSWhite);
}
return _lineView;
}
@end
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!