1
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
@property(nonatomic, strong) UILabel *titleLabel;
|
||||
@property(nonatomic, strong) KBAiWaveformView *waveformView;
|
||||
@property(nonatomic, strong) UIImageView *micIconView;
|
||||
@property(nonatomic, strong) UIImageView *recordingIconView;
|
||||
@property(nonatomic, assign) BOOL isPressing;
|
||||
|
||||
@end
|
||||
@@ -50,7 +51,7 @@
|
||||
self.backgroundView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[self addSubview:self.backgroundView];
|
||||
|
||||
// 麦克风图标
|
||||
// 麦克风图标(正常态左侧)
|
||||
self.micIconView = [[UIImageView alloc] init];
|
||||
self.micIconView.image = [UIImage systemImageNamed:@"mic.fill"];
|
||||
self.micIconView.tintColor = self.tintColor;
|
||||
@@ -58,6 +59,13 @@
|
||||
self.micIconView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[self.backgroundView addSubview:self.micIconView];
|
||||
|
||||
// 录音中图标(居中)
|
||||
self.recordingIconView = [[UIImageView alloc] init];
|
||||
self.recordingIconView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
self.recordingIconView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
self.recordingIconView.hidden = YES;
|
||||
[self.backgroundView addSubview:self.recordingIconView];
|
||||
|
||||
// 标题标签
|
||||
self.titleLabel = [[UILabel alloc] init];
|
||||
self.titleLabel.text = self.normalTitle;
|
||||
@@ -104,6 +112,13 @@
|
||||
constraintEqualToAnchor:self.backgroundView.centerYAnchor],
|
||||
[self.waveformView.widthAnchor constraintEqualToConstant:60],
|
||||
[self.waveformView.heightAnchor constraintEqualToConstant:30],
|
||||
|
||||
[self.recordingIconView.centerXAnchor
|
||||
constraintEqualToAnchor:self.backgroundView.centerXAnchor],
|
||||
[self.recordingIconView.centerYAnchor
|
||||
constraintEqualToAnchor:self.backgroundView.centerYAnchor],
|
||||
[self.recordingIconView.widthAnchor constraintEqualToConstant:36],
|
||||
[self.recordingIconView.heightAnchor constraintEqualToConstant:36],
|
||||
]];
|
||||
|
||||
// 添加手势
|
||||
@@ -131,6 +146,18 @@
|
||||
self.waveformView.waveColor = tintColor;
|
||||
}
|
||||
|
||||
- (void)setNormalIconImage:(UIImage *)normalIconImage {
|
||||
_normalIconImage = normalIconImage;
|
||||
if (normalIconImage) {
|
||||
self.micIconView.image = normalIconImage;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setRecordingIconImage:(UIImage *)recordingIconImage {
|
||||
_recordingIconImage = recordingIconImage;
|
||||
self.recordingIconView.image = recordingIconImage;
|
||||
}
|
||||
|
||||
#pragma mark - Public Methods
|
||||
|
||||
- (void)updateVolumeRMS:(float)rms {
|
||||
@@ -144,18 +171,21 @@
|
||||
case KBAiRecordButtonStateNormal:
|
||||
self.titleLabel.text = self.normalTitle;
|
||||
self.backgroundView.backgroundColor = [UIColor systemGray6Color];
|
||||
self.micIconView.alpha = 1;
|
||||
self.micIconView.hidden = NO;
|
||||
self.titleLabel.hidden = NO;
|
||||
self.recordingIconView.hidden = YES;
|
||||
self.waveformView.alpha = 0;
|
||||
[self.waveformView stopAnimation];
|
||||
break;
|
||||
|
||||
case KBAiRecordButtonStateRecording:
|
||||
self.titleLabel.text = self.recordingTitle;
|
||||
self.backgroundView.backgroundColor =
|
||||
[self.tintColor colorWithAlphaComponent:0.15];
|
||||
self.micIconView.alpha = 1;
|
||||
self.waveformView.alpha = 1;
|
||||
[self.waveformView startIdleAnimation];
|
||||
self.backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6];
|
||||
self.micIconView.hidden = YES;
|
||||
self.titleLabel.hidden = YES;
|
||||
self.recordingIconView.hidden = NO;
|
||||
self.waveformView.alpha = 0;
|
||||
[self.waveformView stopAnimation];
|
||||
break;
|
||||
|
||||
case KBAiRecordButtonStateDisabled:
|
||||
|
||||
Reference in New Issue
Block a user