123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- //
- // ASHomeLookingCell.m
- // Asteria
- //
- // Created by iOS on 2023/6/10.
- //
- #import "ASHomeLookingCell.h"
- #import "KWScrollOffsetView.h"
- #import "ASHomeLookingCollCell.h"
- @interface ASHomeLookingCell ()<UICollectionViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource>
- @property (nonatomic, strong) UICollectionView *collectV;
- @property (nonatomic, strong) UILabel *titleLb;
- @property (nonatomic, strong) KWScrollOffsetView *offsetV;
- @end
- @implementation ASHomeLookingCell
- - (void)setModel:(ASHomeMainListModel *)model {
- _model = model;
- self.titleLb.text = model.title;
- self.offsetV.hidden = model.titleArr.count <= 1;
- [self.collectV reloadData];
-
-
- }
- - (void)awakeFromNib {
- [super awakeFromNib];
- // Initialization code
- }
- - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
- [super setSelected:selected animated:animated];
-
- // Configure the view for the selected state
- }
- - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
- self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
- if (self) {
- [self loadSubV];
- }
- return self;
- }
- - (void)loadSubV {
- self.selectionStyle = UITableViewCellSelectionStyleNone;
- self.contentView.backgroundColor = [UIColor colorWithHexString:@"#FFFFFF"];
- self.backgroundColor = [UIColor colorWithHexString:@"#FFFFFF"];
-
- [self.contentView addSubview:self.titleLb];
- [self.contentView addSubview:self.collectV];
- [self.contentView addSubview:self.offsetV];
-
- [self.titleLb mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.contentView).offset(50);
- make.centerX.equalTo(self.contentView);
- make.left.greaterThanOrEqualTo(self.contentView).offset(20);
- make.height.equalTo(@30);
- }];
-
- CGFloat collH = ((KScreenWidth-30)/2 + 28)*2 + 10;
- [self.collectV mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.contentView).offset(0);
- make.right.equalTo(self.contentView).offset(-0);
- make.height.equalTo([NSNumber numberWithFloat:collH]);
- make.top.equalTo(self.titleLb.mas_bottom).offset(30);
- }];
-
- [self.offsetV mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self.contentView);
- make.height.equalTo(@2);
- make.width.equalTo(@137);
- make.top.equalTo(self.collectV.mas_bottom).offset(40);
- make.bottom.equalTo(self.contentView.mas_bottom).offset(-50);
- }];
-
- }
- // MARK: - delegate datasource
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
- if (self.offsetV.isHidden) {
- return;
- }
- CGFloat offset = scrollView.contentOffset.x;
- CGFloat itemWidth = (KScreenWidth-20);
- NSArray<ASHomeCategoryModel*> *arr = self.model.titleArr;
- if (arr.count > 0) {
- CGFloat maxOffset = (arr.count * (itemWidth + 10) - 10 ) - (KScreenWidth-20);
- self.offsetV.offset = offset/maxOffset;
- }
- }
- - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
-
- if (self.itemClick) {
-
- ASHomeCategoryModel *m = self.model.titleArr[indexPath.row];
- self.itemClick(indexPath.row, m);
- }
-
- }
- // MARK: - UICollectionViewDataSource
- - (nonnull __kindof UICollectionViewCell *)collectionView:(nonnull UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
- ASHomeLookingCollCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ASHomeLookingCollCell" forIndexPath:indexPath];
- if (indexPath.row >= self.model.titleArr.count) {
- return cell;
- }
- ASHomeCategoryModel *m = self.model.titleArr[indexPath.row];
- [cell setData:m];
- return cell;
- }
- - (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
- return self.model.titleArr.count;
- }
- - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
-
- CGFloat marg = 10;
- CGFloat w = (KScreenWidth-3*marg)/2;
- CGFloat collH = ((KScreenWidth-30)/2 + 28);
- return CGSizeMake(w, collH);
- }
- -(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
- return 10;
- }
- -(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
- return 10;
- }
- - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
- return UIEdgeInsetsMake(0, 10, 0, 10);
- }
- - (UILabel *)titleLb {
- if (!_titleLb) {
- UILabel *lb = [[UILabel alloc] init];
- lb.textColor = [UIColor blackColor];
- lb.font = [UIFont fontWithName:Rob_Bold size:24];
- lb.textAlignment = NSTextAlignmentCenter;
- _titleLb = lb;
- }
- return _titleLb;
- }
- -(UICollectionView *)collectV {
- if (!_collectV) {
- UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
- layout.sectionInset = UIEdgeInsetsMake(10, 0, 10, 0);
- layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
- CGFloat collH = ((KScreenWidth-30)/2 + 28)*2 + 10;
- CGFloat marg = 10;
- CGFloat w = (KScreenWidth-3*marg)/2;
- CGFloat itemH = ((KScreenWidth-30)/2 + 28);
- layout.itemSize = CGSizeMake(w, itemH);
- UICollectionView *collV = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, collH) collectionViewLayout:layout];
- collV.backgroundColor = [UIColor whiteColor];
- collV.alwaysBounceHorizontal = true;
- collV.scrollEnabled = true;
- collV.delegate = self;
- collV.dataSource = self;
- collV.showsHorizontalScrollIndicator = false;
- [collV registerClass:[ASHomeLookingCollCell class] forCellWithReuseIdentifier:@"ASHomeLookingCollCell"];
- _collectV = collV;
- }
- return _collectV;
- }
- - (KWScrollOffsetView *)offsetV {
- if (!_offsetV) {
- KWScrollOffsetView *v = [[KWScrollOffsetView alloc] initWithFrame:CGRectMake(0, 0, 137, 2)];
- v.clipsToBounds = true;
- v.offWidth = 54;
- v.offset = 0;
- _offsetV = v;
- }
- return _offsetV;
- }
- @end
|