123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- //
- // YMMemberPrivilegeItemView.m
- // MSYOUPAI
- //
- // Created by YoMi on 2024/2/27.
- // Copyright © 2024 MS. All rights reserved.
- //
- #import "YMMemberPrivilegeItemView.h"
- #import "YMMemberCenterViewModel.h"
- #import "YMMemberPrivilegeItemCell.h"
- @interface YMMemberPrivilegeItemView ()<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
- /// 会员中心VM
- @property (nonatomic, strong) YMMemberCenterViewModel *viewModel;
- /// 特权项目标题标签
- @property (nonatomic, strong) UILabel *privilegeItemTitleLb;
- @property (nonatomic, strong) UIImageView *lImgv;
- @property (nonatomic, strong) UIImageView *rImgv;
- @property (nonatomic, strong) UIImageView *bImgv;
- /// 特权项目排版
- @property (nonatomic, strong) UICollectionViewFlowLayout *privilegeItemLayout;
- /// 特权项目容器列表
- @property (nonatomic, strong) UICollectionView *privilegeItemCollectionView;
- @end
- @implementation YMMemberPrivilegeItemView
- - (void)ym_setupViews{
-
- [self addSubview:self.lImgv];
- [self addSubview:self.rImgv];
- [self addSubview:self.bImgv];
- [self addSubview:self.privilegeItemTitleLb];
- [self addSubview:self.privilegeItemCollectionView];
- [self setNeedsUpdateConstraints];
- [self updateConstraintsIfNeeded];
- }
- - (void)updateConstraints{
-
- [self.privilegeItemTitleLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self);
- make.left.equalTo(self).offset(adapt(22));
- }];
- // [self.lImgv mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.centerY.equalTo(self.privilegeItemTitleLb);
- // make.right.equalTo(self.privilegeItemTitleLb.mas_left).offset(adapt(-6));
- // }];
- // [self.rImgv mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.centerY.equalTo(self.privilegeItemTitleLb);
- // make.left.equalTo(self.privilegeItemTitleLb.mas_right).offset(adapt(6));
- // }];
- // [self.bImgv mas_makeConstraints:^(MASConstraintMaker *make) {
- // make.centerX.equalTo(self.privilegeItemTitleLb);
- // make.top.equalTo(self.privilegeItemTitleLb.mas_bottom).offset(adapt(6));
- // }];
-
- [self.privilegeItemCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.privilegeItemTitleLb.mas_bottom).offset(adapt(20));
- make.left.equalTo(self);
- make.right.equalTo(self);
- make.height.mas_equalTo(adapt(140) * 4.5);
- }];
-
- [super updateConstraints];
- }
- - (void)ym_bindViewModel:(YMMemberCenterViewModel *)viewModel{
- if (!viewModel) {
- return;
- }
-
- _viewModel = viewModel;
-
- @weakify(self)
- [[self.viewModel.refreshUISubject takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id result) {
- @strongify(self)
- [self.privilegeItemCollectionView reloadData];
- [self.privilegeItemCollectionView layoutIfNeeded];
- //刷新高度
- // CGFloat privilegeItemCollectionViewHeight = self.privilegeItemCollectionView.collectionViewLayout.collectionViewContentSize.height;
- // [self.privilegeItemCollectionView mas_updateConstraints:^(MASConstraintMaker *make) {
- // make.height.mas_equalTo(privilegeItemCollectionViewHeight);
- // }];
- }];
- }
- #pragma mark - UICollectionViewDataSource
- - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
- return 1;
- }
- - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
- return self.viewModel.privilegeItemDataArray.count;
- }
- - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
- YMMemberPrivilegeItemCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YMMemberPrivilegeItemCell class]) forIndexPath:indexPath];
- [cell ym_bindViewModel:self.viewModel.privilegeItemDataArray[indexPath.item]];
- return cell;
- }
- - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
- UICollectionReusableView *reusableView = nil;
- reusableView.backgroundColor = [UIColor clearColor];
- return reusableView;
- }
- - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
- return CGSizeZero;
- }
- - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section{
- return CGSizeZero;
- }
- #pragma mark - UICollectionViewDelegate
- - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
-
- }
- #pragma mark - CHTCollectionViewDelegateWaterfallLayout
- - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
- return CGSizeMake(adapt(100), adapt(127));
- }
- - (UIImageView *)lImgv {
- if (!_lImgv) {
- _lImgv = [[UIImageView alloc] init];
- _lImgv.hidden = YES;
- _lImgv.image = ImageByName(@"ym_member_center_vip_left");
- }
- return _lImgv;
- }
- - (UIImageView *)rImgv {
- if (!_rImgv) {
- _rImgv = [[UIImageView alloc] init];
- _rImgv.hidden = YES;
- _rImgv.image = ImageByName(@"ym_member_center_vip_right");
- }
- return _rImgv;
- }
- - (UIImageView *)bImgv {
- if (!_bImgv) {
- _bImgv = [[UIImageView alloc] init];
- _bImgv.hidden = YES;
- _bImgv.image = ImageByName(@"ym_member_center_vip_bottom");
- }
- return _bImgv;
- }
- - (UILabel *)privilegeItemTitleLb{
- if (!_privilegeItemTitleLb) {
- _privilegeItemTitleLb = [[UILabel alloc]init];
- _privilegeItemTitleLb.font = LCBoldFont(16);
- _privilegeItemTitleLb.textColor = HexColorFromRGB(0x333333);
- _privilegeItemTitleLb.textAlignment = NSTextAlignmentLeft;
- _privilegeItemTitleLb.text = @"VIP权益";
- }
- return _privilegeItemTitleLb;
- }
- - (UICollectionViewFlowLayout *)privilegeItemLayout{
- if (!_privilegeItemLayout) {
- _privilegeItemLayout = [[UICollectionViewFlowLayout alloc] init];
- _privilegeItemLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
- _privilegeItemLayout.minimumLineSpacing = adapt(10);
- _privilegeItemLayout.minimumInteritemSpacing = adapt(10);
- }
- return _privilegeItemLayout;
- }
- - (UICollectionView *)privilegeItemCollectionView{
- if (!_privilegeItemCollectionView) {
- _privilegeItemCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:self.privilegeItemLayout];
- _privilegeItemCollectionView.delegate = self;
- _privilegeItemCollectionView.dataSource = self;
- _privilegeItemCollectionView.showsVerticalScrollIndicator = NO;
- _privilegeItemCollectionView.showsHorizontalScrollIndicator = YES;
- _privilegeItemCollectionView.backgroundColor = UIColor.clearColor;
- _privilegeItemCollectionView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
- [_privilegeItemCollectionView registerClass:[YMMemberPrivilegeItemCell class] forCellWithReuseIdentifier:NSStringFromClass([YMMemberPrivilegeItemCell class])];
- }
- return _privilegeItemCollectionView;
- }
- @end
|