123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- //
- // YMInvitingPrizesMyInvitationView.m
- // MSYOUPAI
- //
- // Created by YoMi on 2024/3/6.
- // Copyright © 2024 MS. All rights reserved.
- //
- #import "YMInvitingPrizesMyInvitationView.h"
- #import "YMInvitingPrizesViewModel.h"
- #define kinvitationInfoGridView_rowCount 2
- #define kinvitationInfoGridView_itemHeight 60
- @interface YMInvitingPrizesMyInvitationView ()
- /// 邀请有奖VM
- @property (nonatomic, strong) YMInvitingPrizesViewModel *viewModel;
- /// 顶部右视图
- @property (nonatomic, strong) UIView *topRightView;
- @property (nonatomic, strong) UIImageView *bgImgv;
- /// 渐变色图片视图
- @property (nonatomic, strong) UILabel *titleLb;
- /// 渐变色图片视图
- @property (nonatomic, strong) UIImageView *titleImgv;
- /// 渐变色图片视图
- @property (nonatomic, strong) UIImageView *titleImgvL;
- /// 渐变色图片视图
- @property (nonatomic, strong) UIImageView *titleImgvR;
- /// 邀请人数
- @property (nonatomic, strong) UILabel *inviteNumLb;
- /// 邀请人数描述
- @property (nonatomic, strong) UILabel *inviteNumDesLb;
- /// 邀请明细
- @property (nonatomic, strong) UIButton *invitationBreakdownBtn;
- /// 奖励背景图
- @property (nonatomic, strong) UIView *jiangLiBgv;
- /// 奖励图标
- @property (nonatomic, strong) UIImageView *jiangLiIcon;
- /// 奖励数量
- @property (nonatomic, strong) UILabel *jiangLiNumLb;
- /// 奖励数量描述
- @property (nonatomic, strong) UILabel *jiangLiNumDesLb;
- /// 底部基础视图
- @property (nonatomic, strong) UIView *bottomBaseView;
- /// 邀请信息宫格配置
- @property (nonatomic, strong) BAGridView_Config *invitationInfoGridViewConfig;
- /// 邀请信息宫格视图
- @property (nonatomic, strong) BAGridView *invitationInfoGridView;
- @end
- @implementation YMInvitingPrizesMyInvitationView
- - (void)ym_setupViews{
- [self addSubview:self.topRightView];
- [self.topRightView addSubview:self.bgImgv];
- [self.topRightView addSubview:self.titleLb];
- [self.topRightView addSubview:self.titleImgvL];
- [self.topRightView addSubview:self.titleImgvR];
- [self.topRightView addSubview:self.inviteNumLb];
- [self.topRightView addSubview:self.inviteNumDesLb];
- [self.topRightView addSubview:self.jiangLiBgv];
- [self.topRightView addSubview:self.jiangLiIcon];
- [self.topRightView addSubview:self.jiangLiNumLb];
- [self.topRightView addSubview:self.jiangLiNumDesLb];
- [self.topRightView addSubview:self.invitationBreakdownBtn];
- // [self addSubview:self.bottomBaseView];
- // [self.bottomBaseView addSubview:self.invitationInfoGridView];
-
- [self setNeedsUpdateConstraints];
- [self updateConstraintsIfNeeded];
- }
- - (void)updateConstraints{
-
- [self.topRightView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.bottom.equalTo(self);
- make.left.equalTo(self).offset(adapt(18));
- make.right.equalTo(self).offset(adapt(-18));
- make.height.mas_equalTo(adapt(229));
- }];
-
- [self.bgImgv mas_makeConstraints:^(MASConstraintMaker *make) {
- make.edges.equalTo(self.topRightView);
- }];
-
- [self.titleLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.topRightView.mas_top).offset(adapt(16));
- make.centerX.equalTo(self.topRightView);
- //make.width.mas_equalTo(adapt(156));
- make.height.mas_equalTo(adapt(22));
- }];
-
- [self.titleImgvL mas_makeConstraints:^(MASConstraintMaker *make) {
- make.right.equalTo(self.titleLb.mas_left).offset(adapt(-10));
- make.centerY.equalTo(self.titleLb);
- //make.height.mas_equalTo(adapt(22));
- }];
-
- [self.titleImgvR mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.titleLb.mas_right).offset(adapt(10));
- make.centerY.equalTo(self.titleLb);
- //make.height.mas_equalTo(adapt(22));
- }];
-
- [self.inviteNumLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.titleLb.mas_bottom).offset(adapt(18));
- make.centerX.equalTo(self.topRightView);
- }];
-
- [self.inviteNumDesLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.inviteNumLb.mas_bottom).offset(adapt(3));
- make.centerX.equalTo(self.topRightView);
- make.height.mas_equalTo(adapt(18));
- }];
-
- [self.jiangLiBgv mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.inviteNumDesLb.mas_bottom).offset(adapt(20));
- make.left.right.equalTo(self.topRightView).inset(adapt(20));
- make.height.mas_equalTo(adapt(48));
- }];
-
- [self.jiangLiIcon mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(self.jiangLiBgv.mas_centerY);
- make.left.equalTo(self.jiangLiBgv).offset(adapt(16));
- make.width.height.mas_equalTo(adapt(26));
- }];
-
- [self.jiangLiNumLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(self.jiangLiBgv.mas_centerY);
- make.left.equalTo(self.jiangLiIcon.mas_right).offset(adapt(3));
- }];
-
- [self.jiangLiNumDesLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(self.jiangLiBgv.mas_centerY);
- make.left.equalTo(self.jiangLiNumLb.mas_right).offset(adapt(10));
- }];
- [self.jiangLiNumDesLb setContentCompressionResistancePriority:(UILayoutPriorityDefaultLow) forAxis:(UILayoutConstraintAxisHorizontal)];
-
- [self.invitationBreakdownBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(self.jiangLiBgv.mas_centerY);
- make.right.equalTo(self.jiangLiBgv.mas_right).offset(adapt(-16));
- make.width.mas_equalTo(adapt(59));
- make.height.mas_equalTo(adapt(26));
- }];
-
- // [self.bottomBaseView mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.top.equalTo(self.topRightView.mas_bottom).offset(adapt(-5));
- // make.left.equalTo(self).offset(adapt(15));
- // make.right.equalTo(self).offset(adapt(-15));
- // make.bottom.equalTo(self);
- // }];
- //
- // [self.invitationInfoGridView mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.top.equalTo(self.bottomBaseView).offset(adapt(31));
- // make.left.equalTo(self.bottomBaseView).offset(adapt(12));
- // make.right.equalTo(self.bottomBaseView).offset(adapt(-12));
- // make.bottom.equalTo(self.bottomBaseView).offset(adapt(-31));
- // make.height.mas_equalTo(adapt(60));
- // }];
-
- [super updateConstraints];
- }
- - (void)ym_bindViewModel:(YMInvitingPrizesViewModel *)viewModel{
- if (!viewModel) {
- return;
- }
-
- _viewModel = viewModel;
-
- @weakify(self)
- [[[[RACObserve(self.viewModel, invitationInfoGridDataArray) distinctUntilChanged] deliverOnMainThread] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(NSArray * invitationInfoGridDataArray) {
- @strongify(self)
-
- for (YMInvitingPrizesInvitationInfoViewModel *viewModel in invitationInfoGridDataArray) {
- if (viewModel.infoType == YMInvitingPrizesInvitationInfoTypeCumulativeInvitations) {
- self.inviteNumLb.text = viewModel.titleString;
- }
- else if (viewModel.infoType == YMInvitingPrizesInvitationInfoTypeCumulativeReward) {
- self.jiangLiNumLb.text = viewModel.titleString;
- }
- }
-
- // self.invitationInfoGridView.config = self.invitationInfoGridViewConfig;
- // self.invitationInfoGridViewConfig.dataArray = invitationInfoGridDataArray;
- // [self.invitationInfoGridView mas_remakeConstraints:^(MASConstraintMaker *make) {
- // make.top.equalTo(self.bottomBaseView).offset(adapt(31));
- // make.left.equalTo(self.bottomBaseView).offset(adapt(12));
- // make.right.equalTo(self.bottomBaseView).offset(adapt(-12));
- // make.bottom.equalTo(self.bottomBaseView).offset(adapt(-31));
- // make.height.mas_equalTo(adapt(60));
- // }];
- }];
-
- }
- - (UIView *)topRightView{
- if (!_topRightView) {
- _topRightView = [[UIView alloc]init];
- _topRightView.backgroundColor = rgba(255, 255, 255, 1);
- _topRightView.layer.cornerRadius = adapt(23);
- _topRightView.layer.masksToBounds = YES;
- //[_topRightView addRectCorner:UIRectCornerTopLeft|UIRectCornerTopRight radius:adapt(21)];
- }
- return _topRightView;
- }
- - (UIImageView *)bgImgv {
- if (!_bgImgv) {
- _bgImgv = [[UIImageView alloc] initWithImage:ImageByName(@"ym_inviting_prizes_my_invitation_bg")];
- _bgImgv.hidden = YES;
- }
- return _bgImgv;
- }
- - (UILabel *)titleLb {
- if (!_titleLb) {
- _titleLb = [[UILabel alloc] init];
- _titleLb.font = LCSemiboldFont(16);
- _titleLb.textColor = rgba(255, 63, 104, 1);
- _titleLb.textAlignment = NSTextAlignmentCenter;
- _titleLb.text = @"我的邀请";
- }
- return _titleLb;
- }
- - (UIImageView *)titleImgv{
- if (!_titleImgv) {
- _titleImgv = [[UIImageView alloc]initWithImage:ImageByName(@"ym_inviting_prizes_my_invitation_title")];
- }
- return _titleImgv;
- }
- - (UIImageView *)titleImgvL{
- if (!_titleImgvL) {
- _titleImgvL = [[UIImageView alloc]initWithImage:ImageByName(@"ym_inviting_prizes_my_invitation_title_left")];
- }
- return _titleImgvL;
- }
- - (UIImageView *)titleImgvR{
- if (!_titleImgvR) {
- _titleImgvR = [[UIImageView alloc]initWithImage:ImageByName(@"ym_inviting_prizes_my_invitation_title_right")];
- }
- return _titleImgvR;
- }
- - (UILabel *)inviteNumLb {
- if (!_inviteNumLb) {
- _inviteNumLb = [[UILabel alloc] init];
- _inviteNumLb.font = LCSemiboldFont(46);
- _inviteNumLb.textColor = rgba(51, 51, 51, 1);
- _inviteNumLb.textAlignment = NSTextAlignmentCenter;
- _inviteNumLb.text = @"0";
- }
- return _inviteNumLb;
- }
- - (UILabel *)inviteNumDesLb {
- if (!_inviteNumDesLb) {
- _inviteNumDesLb = [[UILabel alloc] init];
- _inviteNumDesLb.font = LCFont(14);
- _inviteNumDesLb.textColor = rgba(51, 51, 51, 1);
- _inviteNumDesLb.textAlignment = NSTextAlignmentCenter;
- _inviteNumDesLb.text = @"累计邀请(人数)";
- }
- return _inviteNumDesLb;
- }
- - (UIView *)jiangLiBgv {
- if (!_jiangLiBgv) {
- _jiangLiBgv = [[UIView alloc] init];
- _jiangLiBgv.backgroundColor = rgba(255, 255, 255, 1);
- _jiangLiBgv.layer.cornerRadius = adapt(24);
- _jiangLiBgv.layer.masksToBounds = YES;
- _jiangLiBgv.layer.borderWidth = 1;
- _jiangLiBgv.layer.borderColor = HexColorFromRGBA(0xFBBF82, 1).CGColor;
- }
- return _jiangLiBgv;
- }
- - (UIImageView *)jiangLiIcon {
- if (!_jiangLiIcon) {
- _jiangLiIcon = [[UIImageView alloc] initWithImage:ImageByName(@"ym_my_earnings_coin")];
- }
- return _jiangLiIcon;
- }
- - (UILabel *)jiangLiNumLb {
- if (!_jiangLiNumLb) {
- _jiangLiNumLb = [[UILabel alloc] init];
- _jiangLiNumLb.font = LCSemiboldFont(24);
- _jiangLiNumLb.textColor = HexColorFromRGB(0xFEA802);
- _jiangLiNumLb.textAlignment = NSTextAlignmentLeft;
- _jiangLiNumLb.text = @"0";
- }
- return _jiangLiNumLb;
- }
- - (UILabel *)jiangLiNumDesLb {
- if (!_jiangLiNumDesLb) {
- _jiangLiNumDesLb = [[UILabel alloc] init];
- _jiangLiNumDesLb.font = LCFont(13);
- _jiangLiNumDesLb.textColor = HexColorFromRGB(0x666666);
- _jiangLiNumDesLb.textAlignment = NSTextAlignmentLeft;
- _jiangLiNumDesLb.text = @"累计奖励(金币)";
- }
- return _jiangLiNumDesLb;
- }
- - (UIButton *)invitationBreakdownBtn{
- if (!_invitationBreakdownBtn) {
- _invitationBreakdownBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_invitationBreakdownBtn setBackgroundImage:ImageByName(@"ym_inviting_prizes_arrow") forState:UIControlStateNormal];
- _invitationBreakdownBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
- _invitationBreakdownBtn.titleLabel.font=LCFont(13);
- [_invitationBreakdownBtn setTitle:@"去邀请" forState:0];
- [_invitationBreakdownBtn setTitleColor:UIColor.whiteColor forState:0];
- //[_invitationBreakdownBtn setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
- //[_invitationBreakdownBtn ym_setGradientBackgroundWithColors:kMainGradColors locations:kMainGradLocation startPoint:kMainGradStartP endPoint:kMainGradEndP];
-
- CGFloat margin = 3;
- _invitationBreakdownBtn.imageEdgeInsets = UIEdgeInsetsMake(0, margin, 0, -margin);
- WS(weakSelf)
- [[[_invitationBreakdownBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(__kindof UIButton * _Nullable sender) {
- [weakSelf.viewModel gotoInvitationBreakdown];
- }];
-
- }
- return _invitationBreakdownBtn;
- }
- - (UIView *)bottomBaseView{
- if (!_bottomBaseView) {
- _bottomBaseView = [[UIView alloc]init];
- _bottomBaseView.hidden = YES;
- _bottomBaseView.backgroundColor = UIColor.clearColor;
- [_bottomBaseView addRectCorner: UIRectCornerBottomLeft|UIRectCornerBottomRight radius:adapt(21)];
- }
- return _bottomBaseView;
- }
- - (BAGridView_Config *)invitationInfoGridViewConfig{
- if (!_invitationInfoGridViewConfig) {
- _invitationInfoGridViewConfig = [[BAGridView_Config alloc]init];
- _invitationInfoGridViewConfig.scrollEnabled = NO;
- // 是否显示分割线
- _invitationInfoGridViewConfig.showLineView = NO;
- // item:分割线颜色,默认:BAKit_Color_Gray_11【BAKit_Color_RGB(248, 248, 248)】
- _invitationInfoGridViewConfig.ba_gridView_lineColor = HexColorFromRGB(0xededed);
- // item:每行 item 的个数
- _invitationInfoGridViewConfig.ba_gridView_rowCount = kinvitationInfoGridView_rowCount;
- // item:高度/宽度
- _invitationInfoGridViewConfig.ba_gridView_itemHeight = adapt(kinvitationInfoGridView_itemHeight);
- // item:title 颜色,默认:BAKit_Color_Black【[UIColor blackColor]】
- _invitationInfoGridViewConfig.ba_gridView_titleColor = BAKit_Color_Black_pod;
- _invitationInfoGridViewConfig.ba_gridView_titleDescColor = BAKit_Color_Gray_1_pod;
- // item:title Font,默认:图文样式下 16,两行文字下(上25,下12)
- _invitationInfoGridViewConfig.ba_gridView_titleFont = LCBoldFont(24);
- _invitationInfoGridViewConfig.ba_gridView_titleDescFont = LCFont(13);
- // item:背景颜色,默认:白色
- _invitationInfoGridViewConfig.ba_gridView_backgroundColor = BAKit_Color_Clear_pod;
- // item:背景选中颜色,默认:无色
- _invitationInfoGridViewConfig.ba_gridView_selectedBackgroundColor = BAKit_Color_Clear_pod;
- // badge
- _invitationInfoGridViewConfig.ba_gridView_badgeType = kBAGridViewBadgeType_Center;
- _invitationInfoGridViewConfig.ba_gridView_badgeFont = LCFont(10);
- _invitationInfoGridViewConfig.ba_gridView_badgeRectCorners = UIRectCornerTopLeft | UIRectCornerTopRight |UIRectCornerBottomLeft| UIRectCornerBottomRight;
- _invitationInfoGridViewConfig.ba_gridView_badgeCornerRadius = 7;
- _invitationInfoGridViewConfig.ba_gridView_badgeBgColor = HexColorFromRGB(0xF4003F);
- _invitationInfoGridViewConfig.ba_gridView_badgeTextColor = HexColorFromRGB(0xFFFFFF);
- _invitationInfoGridViewConfig.ba_gridView_badgeHeight = 14;
- _invitationInfoGridViewConfig.ba_gridView_badgeOffsetPoint = CGPointMake(8, 8);
- // _invitationInfoGridViewConfig.ba_gridView_itemEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10);
- // _invitationInfoGridViewConfig.minimumLineSpacing = 10;
- // _invitationInfoGridViewConfig.minimumInteritemSpacing = 10;
- _invitationInfoGridViewConfig.gridViewType = BAGridViewTypeTitleDesc;
- }
- return _invitationInfoGridViewConfig;
- }
- - (BAGridView *)invitationInfoGridView{
- if (!_invitationInfoGridView) {
- @weakify(self)
- _invitationInfoGridView = [BAGridView ba_creatGridViewWithGridViewConfig:self.invitationInfoGridViewConfig block:^(BAGridItemModel *model, NSIndexPath *indexPath) {
- @strongify(self)
- }];
- }
- return _invitationInfoGridView;
- }
- @end
|