Commit 6da72bcf cgx

完成积分规则弹框

1 个父辈 5de813e8
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
D00291892816CD4500C0573B /* DsCacheUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = D00291882816CD4500C0573B /* DsCacheUtils.m */; }; D00291892816CD4500C0573B /* DsCacheUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = D00291882816CD4500C0573B /* DsCacheUtils.m */; };
D0031549284DAC0D00CFE94D /* RelaxBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0031548284DAC0D00CFE94D /* RelaxBodyView.m */; }; D0031549284DAC0D00CFE94D /* RelaxBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0031548284DAC0D00CFE94D /* RelaxBodyView.m */; };
D003154C284DF46F00CFE94D /* RelaxTrainCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D003154B284DF46F00CFE94D /* RelaxTrainCell.m */; }; D003154C284DF46F00CFE94D /* RelaxTrainCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D003154B284DF46F00CFE94D /* RelaxTrainCell.m */; };
D0071C7028707BCC0035AD8A /* ScoreRulesView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0071C6F28707BCC0035AD8A /* ScoreRulesView.m */; };
D00A63572824C42300AFFEAA /* DSNetworkCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D00A63562824C42300AFFEAA /* DSNetworkCache.m */; }; D00A63572824C42300AFFEAA /* DSNetworkCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D00A63562824C42300AFFEAA /* DSNetworkCache.m */; };
D013CD3228582C1900F920B4 /* UMAPM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D013CD1928582C1900F920B4 /* UMAPM.framework */; }; D013CD3228582C1900F920B4 /* UMAPM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D013CD1928582C1900F920B4 /* UMAPM.framework */; };
D013CD3328582C1900F920B4 /* UMCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D013CD1C28582C1900F920B4 /* UMCommon.framework */; }; D013CD3328582C1900F920B4 /* UMCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D013CD1C28582C1900F920B4 /* UMCommon.framework */; };
...@@ -258,6 +259,8 @@ ...@@ -258,6 +259,8 @@
D0031548284DAC0D00CFE94D /* RelaxBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RelaxBodyView.m; sourceTree = "<group>"; }; D0031548284DAC0D00CFE94D /* RelaxBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RelaxBodyView.m; sourceTree = "<group>"; };
D003154A284DF46F00CFE94D /* RelaxTrainCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RelaxTrainCell.h; sourceTree = "<group>"; }; D003154A284DF46F00CFE94D /* RelaxTrainCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RelaxTrainCell.h; sourceTree = "<group>"; };
D003154B284DF46F00CFE94D /* RelaxTrainCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RelaxTrainCell.m; sourceTree = "<group>"; }; D003154B284DF46F00CFE94D /* RelaxTrainCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RelaxTrainCell.m; sourceTree = "<group>"; };
D0071C6E28707BCB0035AD8A /* ScoreRulesView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScoreRulesView.h; sourceTree = "<group>"; };
D0071C6F28707BCC0035AD8A /* ScoreRulesView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScoreRulesView.m; sourceTree = "<group>"; };
D00A63552824C42300AFFEAA /* DSNetworkCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DSNetworkCache.h; sourceTree = "<group>"; }; D00A63552824C42300AFFEAA /* DSNetworkCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DSNetworkCache.h; sourceTree = "<group>"; };
D00A63562824C42300AFFEAA /* DSNetworkCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DSNetworkCache.m; sourceTree = "<group>"; }; D00A63562824C42300AFFEAA /* DSNetworkCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DSNetworkCache.m; sourceTree = "<group>"; };
D013CD1928582C1900F920B4 /* UMAPM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMAPM.framework; sourceTree = "<group>"; }; D013CD1928582C1900F920B4 /* UMAPM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UMAPM.framework; sourceTree = "<group>"; };
...@@ -1103,6 +1106,8 @@ ...@@ -1103,6 +1106,8 @@
D01DC95028701ECD0035B78B /* MyPointView.m */, D01DC95028701ECD0035B78B /* MyPointView.m */,
D01DC952287022740035B78B /* ScoreLevelView.h */, D01DC952287022740035B78B /* ScoreLevelView.h */,
D01DC953287022740035B78B /* ScoreLevelView.m */, D01DC953287022740035B78B /* ScoreLevelView.m */,
D0071C6E28707BCB0035AD8A /* ScoreRulesView.h */,
D0071C6F28707BCC0035AD8A /* ScoreRulesView.m */,
D01DC955287023C20035B78B /* RankHeadView.h */, D01DC955287023C20035B78B /* RankHeadView.h */,
D01DC956287023C20035B78B /* RankHeadView.m */, D01DC956287023C20035B78B /* RankHeadView.m */,
D01DC95828702F260035B78B /* RankViewCell.h */, D01DC95828702F260035B78B /* RankViewCell.h */,
...@@ -2110,6 +2115,7 @@ ...@@ -2110,6 +2115,7 @@
D01BD425282BFFB400BA86B3 /* WhiteNoiseRequestModel.m in Sources */, D01BD425282BFFB400BA86B3 /* WhiteNoiseRequestModel.m in Sources */,
D0BE32E9281551EB006539BE /* ShareAlertView.m in Sources */, D0BE32E9281551EB006539BE /* ShareAlertView.m in Sources */,
D049886E286E9209000ACF55 /* TaskTimerTool.m in Sources */, D049886E286E9209000ACF55 /* TaskTimerTool.m in Sources */,
D0071C7028707BCC0035AD8A /* ScoreRulesView.m in Sources */,
D091BBBB2809079600487A50 /* NSString+Extras.m in Sources */, D091BBBB2809079600487A50 /* NSString+Extras.m in Sources */,
D01814EB28002A8200583D4E /* DsMiddleView.m in Sources */, D01814EB28002A8200583D4E /* DsMiddleView.m in Sources */,
D0C50B4227FD39C800DC68F0 /* UIViewController+FullScreenModal.m in Sources */, D0C50B4227FD39C800DC68F0 /* UIViewController+FullScreenModal.m in Sources */,
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// //
#import "ScoreLevelView.h" #import "ScoreLevelView.h"
#import "ScoreRulesView.h"
@interface ScoreLevelView () @interface ScoreLevelView ()
@property (nonatomic, strong) UIImageView *cardIV; @property (nonatomic, strong) UIImageView *cardIV;
...@@ -15,6 +16,8 @@ ...@@ -15,6 +16,8 @@
@property (nonatomic, strong) UIButton *rulesBtn; @property (nonatomic, strong) UIButton *rulesBtn;
@property (nonatomic, strong) UILabel *curRankLab; @property (nonatomic, strong) UILabel *curRankLab;
@property (nonatomic, strong) UILabel *nextRankLab; @property (nonatomic, strong) UILabel *nextRankLab;
@property (nonatomic, strong) ScoreRulesView *scoreRulesView;
@property (nonatomic, strong) NSArray *rulesArr;
@end @end
@implementation ScoreLevelView @implementation ScoreLevelView
...@@ -53,6 +56,8 @@ ...@@ -53,6 +56,8 @@
} }
- (void)updateData:(MyScoreModel *)scoreModel { - (void)updateData:(MyScoreModel *)scoreModel {
self.rulesArr = scoreModel.rules;
self.curRankNameLab.text = scoreModel.rank_name; self.curRankNameLab.text = scoreModel.rank_name;
self.totalPointsLab.text = [NSString stringWithFormat:@"总积分:%ld", scoreModel.total_points]; self.totalPointsLab.text = [NSString stringWithFormat:@"总积分:%ld", scoreModel.total_points];
[self.rewardIV yy_setImageWithURL:[NSURL URLWithString:scoreModel.reward_img] placeholder:[UIImage imageNamed:@"basicPlaceholder"]]; [self.rewardIV yy_setImageWithURL:[NSURL URLWithString:scoreModel.reward_img] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
...@@ -108,10 +113,11 @@ ...@@ -108,10 +113,11 @@
- (UIButton *)rulesBtn { - (UIButton *)rulesBtn {
if (!_rulesBtn) { if (!_rulesBtn) {
WS(weakSelf);
_rulesBtn = [UIButton btnWithTitle:@"积分规则" titleColor:DSWhite font:SysFont(12.0)]; _rulesBtn = [UIButton btnWithTitle:@"积分规则" titleColor:DSWhite font:SysFont(12.0)];
_rulesBtn.backgroundColor = ColorFromHex(0x89CAD3); _rulesBtn.backgroundColor = ColorFromHex(0x89CAD3);
[_rulesBtn addTouchUpInsideHandler:^(NSInteger tag) { [_rulesBtn addTouchUpInsideHandler:^(NSInteger tag) {
[weakSelf.scoreRulesView showRulesAlertViewWithData:self.rulesArr];
}]; }];
[_rulesBtn cornerRadius:10.0]; [_rulesBtn cornerRadius:10.0];
} }
...@@ -133,4 +139,11 @@ ...@@ -133,4 +139,11 @@
return _nextRankLab; return _nextRankLab;
} }
- (ScoreRulesView *)scoreRulesView {
if (!_scoreRulesView) {
_scoreRulesView = [ScoreRulesView new];
}
return _scoreRulesView;
}
@end @end
//
// ScoreRulesView.h
// DreamSleep
//
// Created by peter on 2022/7/2.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
/// 积分规则弹框
@interface ScoreRulesView : UIView
- (void)showRulesAlertViewWithData:(NSArray *)rulesArr;
@end
NS_ASSUME_NONNULL_END
//
// ScoreRulesView.m
// DreamSleep
//
// Created by peter on 2022/7/2.
//
#import "ScoreRulesView.h"
@interface RuleCell : UITableViewCell
@property (nonatomic, strong) UIView *dotView;
@property (nonatomic, strong) UILabel *ruleLab;
@property (nonatomic, copy) NSString *ruleStr;
@end
@implementation RuleCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.backgroundColor = DSClearColor;
[self.contentView addSubview:self.dotView];
[self.contentView addSubview:self.ruleLab];
}
return self;
}
- (void)setRuleStr:(NSString *)ruleStr {
_ruleStr = ruleStr;
self.ruleLab.text = ruleStr;
[self.dotView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView).offset(16);
make.top.equalTo(self.ruleLab).offset(8);
make.width.height.equalTo(@4);
}];
[self.ruleLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.contentView).offset(10);
make.left.equalTo(self.dotView.mas_right).offset(4);
make.right.equalTo(self.contentView).offset(-16);
}];
}
- (UIView *)dotView {
if (!_dotView) {
_dotView = [UIView new];
_dotView.backgroundColor = BrandColor;
[_dotView cornerRadius:2.0];
}
return _dotView;
}
- (UILabel *)ruleLab {
if (!_ruleLab) {
_ruleLab = [UILabel labWithFont:SysFont(14.0)];
_ruleLab.dk_textColorPicker = DKColorPickerWithColors(SubTitleColor, ColorFromHexA(0xFFFFFF, .5));
_ruleLab.numberOfLines = 0;
}
return _ruleLab;
}
@end
@interface ScoreRulesView () <UITableViewDelegate>
@property (nonatomic, strong) UIView *rulesAlertView;
@property (nonatomic, strong) UILabel *titleLab;
@property (nonatomic, strong) UITableView *rulesTableView;
@property (nonatomic, strong) UIButton *endBtn;
@property (nonatomic, strong) DSDataSource *dataSource;
@property (nonatomic, strong) NSArray *rulesArr;
@end
@implementation ScoreRulesView
- (instancetype)init {
if (self = [super initWithFrame:[UIScreen mainScreen].bounds]) {
self.dk_backgroundColorPicker = DKColorPickerWithColors(ColorFromHex(0x6F7587), DSClearColor, DSWhite);
self.backgroundColor = [self.backgroundColor colorWithAlphaComponent:0.6];
[self addSubview:self.rulesAlertView];
[self.rulesAlertView addSubview:self.titleLab];
[self.rulesAlertView addSubview:self.rulesTableView];
[self.rulesAlertView addSubview:self.endBtn];
[self.rulesAlertView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self);
make.size.mas_equalTo(CGSizeMake(280, 432));
}];
[self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.rulesAlertView);
make.top.equalTo(self.rulesAlertView).offset(20);
}];
[self.rulesTableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titleLab.mas_bottom).offset(10);
make.left.right.equalTo(self.rulesAlertView);
}];
[self.endBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.rulesAlertView);
make.top.equalTo(self.rulesTableView.mas_bottom).offset(5);
make.size.mas_equalTo(CGSizeMake(155, 40));
make.bottom.equalTo(self.rulesAlertView).offset(-15);
}];
}
return self;
}
#pragma mark - public
- (void)showRulesAlertViewWithData:(NSArray *)rulesArr {
if (rulesArr && rulesArr.count) {
[DSKeyWindow addSubview:self];
self.rulesArr = rulesArr;
[self.dataSource addDataArray:self.rulesArr];
[self.rulesTableView reloadData];
}
}
- (void)dismissRulesAlertView {
[self removeFromSuperview];
}
#pragma mark - UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *ruleStr = self.rulesArr[indexPath.row];
CGFloat ruleLabH = [NSString getHeightWithText:ruleStr withFont:SysFont(14.0) withMaxWidth:240];
return ruleLabH + 10;
}
#pragma mark - lazy
- (UIView *)rulesAlertView {
if (!_rulesAlertView) {
_rulesAlertView = [UIView new];
[_rulesAlertView cornerRadius:24.0];
_rulesAlertView.dk_backgroundColorPicker = DKColorPickerWithKey(TabBarBG);
}
return _rulesAlertView;
}
- (UILabel *)titleLab {
if (!_titleLab) {
_titleLab = [UILabel labWithText:@"积分规则" font:BoldFont(16.0) fit:YES];
_titleLab.textAlignment = NSTextAlignmentCenter;
_titleLab.dk_textColorPicker = DKColorPickerWithKey(Dk_TITLE);
}
return _titleLab;
}
- (DSDataSource *)dataSource {
if (!_dataSource) {
_dataSource = [[DSDataSource alloc] initWithIdentifier:NSStringFromClass([RuleCell class]) datas:self.rulesArr isSection:NO configureBlock:^(RuleCell * cell, NSString * ruleStr, NSIndexPath * _Nullable indexPath) {
cell.ruleStr = ruleStr;
}];
}
return _dataSource;
}
- (NSArray *)rulesArr {
if (!_rulesArr) {
_rulesArr = [NSArray array];
}
return _rulesArr;
}
- (UITableView *)rulesTableView {
if (!_rulesTableView) {
_rulesTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_rulesTableView.delegate = self;
_rulesTableView.dataSource = self.dataSource;
_rulesTableView.backgroundColor = DSClearColor;
_rulesTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[_rulesTableView registerClass:[RuleCell class] forCellReuseIdentifier:NSStringFromClass([RuleCell class])];
}
return _rulesTableView;
}
- (UIButton *)endBtn {
if (!_endBtn) {
WS(weakSelf);
_endBtn = [UIButton btnWithTitle:@"我知道了" font:BoldFont(16.0)];
[_endBtn cornerRadius:22.0];
[_endBtn dk_setBackgroundColorPicker:DKColorPickerWithColors(BrandColor, ColorFromHex(0x45A4B5), DSWhite)];
[_endBtn dk_setTitleColorPicker:DKColorPickerWithColors(DSWhite, DkTitleColor, DSWhite) forState:UIControlStateNormal];
[_endBtn addTouchUpInsideHandler:^(NSInteger tag) {
[weakSelf dismissRulesAlertView];
}];
}
return _endBtn;
}
@end
...@@ -7,77 +7,77 @@ ...@@ -7,77 +7,77 @@
<key>AFNetworking.xcscheme_^#shared#^_</key> <key>AFNetworking.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>13</integer> <integer>5</integer>
</dict> </dict>
<key>DKNightVersion.xcscheme_^#shared#^_</key> <key>DKNightVersion.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>7</integer> <integer>15</integer>
</dict> </dict>
<key>DOUAudioStreamer.xcscheme_^#shared#^_</key> <key>DOUAudioStreamer.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>16</integer> <integer>7</integer>
</dict> </dict>
<key>FreeStreamer.xcscheme_^#shared#^_</key> <key>FreeStreamer.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>8</integer> <integer>11</integer>
</dict> </dict>
<key>IQKeyboardManager.xcscheme_^#shared#^_</key> <key>IQKeyboardManager.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>9</integer> <integer>8</integer>
</dict> </dict>
<key>MBProgressHUD.xcscheme_^#shared#^_</key> <key>MBProgressHUD.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>10</integer> <integer>12</integer>
</dict> </dict>
<key>MJRefresh.xcscheme_^#shared#^_</key> <key>MJRefresh.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>11</integer> <integer>13</integer>
</dict> </dict>
<key>Masonry.xcscheme_^#shared#^_</key> <key>Masonry.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>17</integer> <integer>9</integer>
</dict> </dict>
<key>Pods-DreamSleep.xcscheme_^#shared#^_</key> <key>Pods-DreamSleep.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>15</integer> <integer>17</integer>
</dict> </dict>
<key>Reachability.xcscheme_^#shared#^_</key> <key>Reachability.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>12</integer> <integer>18</integer>
</dict> </dict>
<key>YYCache.xcscheme_^#shared#^_</key> <key>YYCache.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>4</integer> <integer>19</integer>
</dict> </dict>
<key>YYImage.xcscheme_^#shared#^_</key> <key>YYImage.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>19</integer> <integer>14</integer>
</dict> </dict>
<key>YYModel.xcscheme_^#shared#^_</key> <key>YYModel.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>18</integer> <integer>10</integer>
</dict> </dict>
<key>YYWebImage.xcscheme_^#shared#^_</key> <key>YYWebImage.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>14</integer> <integer>6</integer>
</dict> </dict>
<key>lottie-ios.xcscheme_^#shared#^_</key> <key>lottie-ios.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>5</integer> <integer>16</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<key>UnityFramework.xcscheme_^#shared#^_</key> <key>UnityFramework.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>6</integer> <integer>4</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!