|
@@ -7,11 +7,11 @@
|
|
|
|
|
|
#import "WidgetDotView.h"
|
|
|
|
|
|
-#define SPOT_WHDTH (24)
|
|
|
+#define SPOT_WHDTH (21)
|
|
|
|
|
|
@interface WidgetDotView ()
|
|
|
|
|
|
-@property (nonatomic, assign) KSMetronomeType currentMetronomeType;
|
|
|
+@property (nonatomic, assign) KSWidgeMetronomeType currentMetronomeType;
|
|
|
|
|
|
@end
|
|
|
|
|
@@ -23,35 +23,33 @@
|
|
|
return view;
|
|
|
}
|
|
|
|
|
|
-- (void)createUI {
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
- (void)updateSpotViewHeightState:(int)currentTotalNo {
|
|
|
// 当前圆个数
|
|
|
int spotNo;
|
|
|
|
|
|
- if (self.currentMetronomeType == KSMetronomeType1V4) {
|
|
|
+ if (self.currentMetronomeType == KSWidgeMetronomeType1V4) {
|
|
|
spotNo = 1;
|
|
|
- }else if (self.currentMetronomeType == KSMetronomeType2V4){
|
|
|
+ }else if (self.currentMetronomeType == KSWidgeMetronomeType2V4){
|
|
|
spotNo = 2;
|
|
|
- }else if (self.currentMetronomeType == KSMetronomeType3V4){
|
|
|
+ }else if (self.currentMetronomeType == KSWidgeMetronomeType3V4){
|
|
|
spotNo = 3;
|
|
|
- }else if (self.currentMetronomeType == KSMetronomeType4V4){
|
|
|
+ }else if (self.currentMetronomeType == KSWidgeMetronomeType4V4){
|
|
|
spotNo = 4;
|
|
|
}else{
|
|
|
spotNo = 6;
|
|
|
}
|
|
|
|
|
|
UIImageView *currentImageView = [self viewWithTag:currentTotalNo % spotNo +100];
|
|
|
- currentImageView.highlighted = YES;
|
|
|
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
|
- currentImageView.highlighted = NO;
|
|
|
- });
|
|
|
+ if (currentImageView) {
|
|
|
+ currentImageView.highlighted = YES;
|
|
|
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
|
+ currentImageView.highlighted = NO;
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-- (void)updateSpotView:(KSMetronomeType)metronomeStat {
|
|
|
+- (void)updateSpotView:(KSWidgeMetronomeType)metronomeStat {
|
|
|
|
|
|
self.currentMetronomeType = metronomeStat;
|
|
|
[self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
|
|
@@ -59,26 +57,29 @@
|
|
|
[self creatSpotImageView:metronomeStat];
|
|
|
}
|
|
|
|
|
|
-- (void)creatSpotImageView:(KSMetronomeType)metronomeStat {
|
|
|
- if (metronomeStat == KSMetronomeType1V2) {
|
|
|
+- (void)creatSpotImageView:(KSWidgeMetronomeType)metronomeType {
|
|
|
+ CGFloat dotSpace = 8.0f;
|
|
|
+ if (metronomeType == KSWidgeMetronomeType1V2) {
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.centerX.mas_equalTo(self.mas_centerX);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType2V2) {
|
|
|
- CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 2) / 3;
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType2V2) {
|
|
|
+ CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 2 - dotSpace) / 2;
|
|
|
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.left.mas_equalTo(self.mas_left).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -86,30 +87,32 @@
|
|
|
spotView1.tag = 101;
|
|
|
[self addSubview:spotView1];
|
|
|
[spotView1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView.mas_right).offset(xSpace);
|
|
|
- make.centerY.mas_equalTo(0);
|
|
|
+ make.left.mas_equalTo(spotView.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType1V4) {
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType1V4) {
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.centerX.mas_equalTo(self.mas_centerX);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType2V4) {
|
|
|
- CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 2) / 3;
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType2V4) {
|
|
|
+ CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 2 - dotSpace) / 2;
|
|
|
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.left.mas_equalTo(self.mas_left).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -117,19 +120,20 @@
|
|
|
spotView1.tag = 101;
|
|
|
[self addSubview:spotView1];
|
|
|
[spotView1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView.mas_right).offset(xSpace);
|
|
|
- make.centerY.mas_equalTo(0);
|
|
|
+ make.left.mas_equalTo(spotView.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType3V4) {
|
|
|
- CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 3) / 4;
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType3V4) {
|
|
|
+ CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 3 - dotSpace * 2) / 2;
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.left.mas_equalTo(self.mas_left).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -137,8 +141,8 @@
|
|
|
spotView1.tag = 101;
|
|
|
[self addSubview:spotView1];
|
|
|
[spotView1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -146,19 +150,20 @@
|
|
|
spotView2.tag = 102;
|
|
|
[self addSubview:spotView2];
|
|
|
[spotView2 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView1.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView1.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType4V4) {
|
|
|
- CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 4) / 5;
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType4V4) {
|
|
|
+ CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 4 - dotSpace * 3) / 2;
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.left.mas_equalTo(self.mas_left).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -166,8 +171,8 @@
|
|
|
spotView1.tag = 101;
|
|
|
[self addSubview:spotView1];
|
|
|
[spotView1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -175,8 +180,8 @@
|
|
|
spotView2.tag = 102;
|
|
|
[self addSubview:spotView2];
|
|
|
[spotView2 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView1.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView1.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -184,19 +189,20 @@
|
|
|
spotView3.tag = 103;
|
|
|
[self addSubview:spotView3];
|
|
|
[spotView3 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView2.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView2.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType3V8) {
|
|
|
- CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 3) / 4;
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType3V8) {
|
|
|
+ CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 3 - dotSpace * 2) / 2;
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
+ spotView.highlighted = YES;
|
|
|
spotView.tag = 100;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.left.mas_equalTo(self.mas_left).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -204,8 +210,8 @@
|
|
|
spotView1.tag = 101;
|
|
|
[self addSubview:spotView1];
|
|
|
[spotView1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -213,19 +219,20 @@
|
|
|
spotView2.tag = 102;
|
|
|
[self addSubview:spotView2];
|
|
|
[spotView2 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView1.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView1.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
- else if (metronomeStat == KSMetronomeType6V8) {
|
|
|
- CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 6) / 7;
|
|
|
+ else if (metronomeType == KSWidgeMetronomeType6V8) {
|
|
|
+ CGFloat xSpace = (KPortraitWidth - SPOT_WHDTH * 6 - dotSpace * 5) / 2;
|
|
|
UIImageView *spotView = [self creatSpotImageView];
|
|
|
spotView.tag = 100;
|
|
|
+ spotView.highlighted = YES;
|
|
|
[self addSubview:spotView];
|
|
|
[spotView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
make.left.mas_equalTo(self.mas_left).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -233,8 +240,8 @@
|
|
|
spotView1.tag = 101;
|
|
|
[self addSubview:spotView1];
|
|
|
[spotView1 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -242,8 +249,8 @@
|
|
|
spotView2.tag = 102;
|
|
|
[self addSubview:spotView2];
|
|
|
[spotView2 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView1.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView1.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -251,8 +258,8 @@
|
|
|
spotView3.tag = 103;
|
|
|
[self addSubview:spotView3];
|
|
|
[spotView3 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView2.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView2.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -260,8 +267,8 @@
|
|
|
spotView4.tag = 104;
|
|
|
[self addSubview:spotView4];
|
|
|
[spotView4 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView3.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView3.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
|
|
@@ -269,17 +276,17 @@
|
|
|
spotView5.tag = 105;
|
|
|
[self addSubview:spotView5];
|
|
|
[spotView5 mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
- make.left.mas_equalTo(spotView4.mas_right).offset(xSpace);
|
|
|
- make.bottom.mas_equalTo(self.mas_bottom).offset(-12);
|
|
|
+ make.left.mas_equalTo(spotView4.mas_right).offset(dotSpace);
|
|
|
+ make.centerY.mas_equalTo(self.mas_centerY);
|
|
|
make.width.height.mas_equalTo(SPOT_WHDTH);
|
|
|
}];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#pragma mark -- 创建大圆View
|
|
|
-- (UIImageView *)creatSpotImageView{
|
|
|
+- (UIImageView *)creatSpotImageView {
|
|
|
|
|
|
- UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"metro_whiteSpot"] highlightedImage:[UIImage imageNamed:@"metro_hightSpot"]];
|
|
|
+ UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"metro_bigWhiteSpot"] highlightedImage:[UIImage imageNamed:@"metro_bigHightSpot"]];
|
|
|
return imageView;
|
|
|
}
|
|
|
|