123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- //
- // WidgetFunctionView.m
- // KulexiuForStudent
- //
- // Created by 王智 on 2022/9/13.
- //
- #import "WidgetFunctionView.h"
- @interface WidgetFunctionView ()
- @property (weak, nonatomic) IBOutlet UIButton *speedMinusButton;
- @property (weak, nonatomic) IBOutlet UIButton *speedAddButton;
- @property (weak, nonatomic) IBOutlet UISlider *volumeSlider;
- @end
- @implementation WidgetFunctionView
- - (void)awakeFromNib {
- [super awakeFromNib];
- [self.volumeSlider setThumbImage:[UIImage imageNamed:@"slider_image"] forState:UIControlStateNormal];
- [self.volumeSlider setThumbImage:[UIImage imageNamed:@"slider_image"] forState:UIControlStateFocused];
- }
- + (instancetype)shareInstance {
- WidgetFunctionView *view = [[[NSBundle mainBundle] loadNibNamed:@"WidgetFunctionView" owner:nil options:nil] firstObject];
- return view;
- }
- - (IBAction)changeVolumeAction:(UISlider *)sender {
- self.volumeRate = sender.value;
- if (self.delegate && [self.delegate respondsToSelector:@selector(volumeChange:)]) {
- [self.delegate volumeChange:sender.value];
- }
- }
- - (IBAction)changeBeatAction:(id)sender {
- if (self.delegate && [self.delegate respondsToSelector:@selector(clickChangeBeat)]) {
- [self.delegate clickChangeBeat];
- }
- }
- - (IBAction)onReduceButtonClick:(id)sender {
- if (self.speed > 50) {
- self.speed --;
- }else{
- self.speed = 50;
- }
- [self updateSpeed];
- }
- - (IBAction)onAddButtonClick:(id)sender {
- if (self.speed < 200) {
- self.speed ++;
- }else{
- self.speed = 200;
- }
- [self updateSpeed];
- }
- - (void)updateSpeed {
-
- if (self.delegate && [self.delegate respondsToSelector:@selector(clickChangeSpeed:)]) {
- [self.delegate clickChangeSpeed:self.speed];
- }
- }
- - (void)setCurrentMetronomeType:(KSWidgeMetronomeType)currentMetronomeType {
- _currentMetronomeType = currentMetronomeType;
- switch (currentMetronomeType) {
- case KSWidgeMetronomeType1V2:
- {
- [self.signatureButton setTitle:@"1/2" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType2V2:
- {
- [self.signatureButton setTitle:@"2/2" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType1V4:
- {
- [self.signatureButton setTitle:@"1/4" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType2V4:
- {
- [self.signatureButton setTitle:@"2/4" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType3V4:
- {
- [self.signatureButton setTitle:@"3/4" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType4V4:
- {
- [self.signatureButton setTitle:@"4/4" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType3V8:
- {
- [self.signatureButton setTitle:@"3/8" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType6V8:
- {
- [self.signatureButton setTitle:@"6/8" forState:UIControlStateNormal];
- }
- break;
- case KSWidgeMetronomeType8V16:
- {
- [self.signatureButton setTitle:@"8/16" forState:UIControlStateNormal];
- }
- break;
- default:
- break;
- }
- }
- - (void)setVolumeRate:(CGFloat)volumeRate {
- _volumeRate = volumeRate;
- self.volumeSlider.value = volumeRate;
- }
- /*
- // Only override drawRect: if you perform custom drawing.
- // An empty implementation adversely affects performance during animation.
- - (void)drawRect:(CGRect)rect {
- // Drawing code
- }
- */
- @end
|