307 lines
13 KiB
Objective-C
307 lines
13 KiB
Objective-C
//
|
|
// MewMainHomeMakeFriendHeadView.m
|
|
// xplan-ios
|
|
//
|
|
// Created by duoban on 2023/12/22.
|
|
//
|
|
|
|
#import "MewMainHomeMakeFriendHeadView.h"
|
|
#import "MewMainHomeMakeFriendHeadCell.h"
|
|
@interface MewMainHomeMakeFriendHeadView()<UICollectionViewDelegate,UICollectionViewDataSource>
|
|
///大神带飞
|
|
@property(nonatomic,strong) NetImageView *mewMahoganyView;
|
|
///一键匹配
|
|
@property(nonatomic,strong) NetImageView *mewMatchingView;
|
|
@property(nonatomic,strong) UICollectionView *mewCollectionView;
|
|
|
|
///换一换
|
|
@property(nonatomic,strong) UIView *mewChangeBGView;
|
|
@property(nonatomic,strong) UILabel *mewChangeTextView;
|
|
@property(nonatomic,strong) UIImageView *mewChangeImage;
|
|
@property(nonatomic,strong) UIButton *mewChangeBtn;
|
|
|
|
//选择
|
|
@property(nonatomic,strong) UIView *mewSelecteBGView;
|
|
@property(nonatomic,strong) UILabel *mewSelecteTextView;
|
|
@property(nonatomic,strong) UIButton *mewSelecteBtn;
|
|
@property(nonatomic,strong) UIImageView *mewSelecteImage;
|
|
@property(nonatomic,strong) UILabel *mewTitleView;
|
|
@end
|
|
@implementation MewMainHomeMakeFriendHeadView
|
|
-(instancetype)initWithFrame:(CGRect)frame{
|
|
self = [super initWithFrame:frame];
|
|
if(self){
|
|
[self installUI];
|
|
[self installConstraints];
|
|
}
|
|
return self;
|
|
}
|
|
-(void)installUI{
|
|
self.backgroundColor = [UIColor clearColor];
|
|
[self addSubview:self.mewMahoganyView];
|
|
[self addSubview:self.mewMatchingView];
|
|
[self addSubview:self.mewCollectionView];
|
|
[self addSubview:self.mewTitleView];
|
|
[self addSubview:self.mewChangeBGView];
|
|
[self addSubview:self.mewSelecteBGView];
|
|
[self.mewChangeBGView addSubview:self.mewChangeTextView];
|
|
[self.mewChangeBGView addSubview:self.mewChangeImage];
|
|
[self.mewChangeBGView addSubview:self.mewChangeBtn];
|
|
[self.mewSelecteBGView addSubview:self.mewSelecteTextView];
|
|
[self.mewSelecteBGView addSubview:self.mewSelecteImage];
|
|
[self.mewSelecteBGView addSubview:self.mewSelecteBtn];
|
|
}
|
|
-(void)installConstraints{
|
|
[self.mewMahoganyView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.leading.mas_equalTo(kGetScaleWidth(15));
|
|
make.top.mas_equalTo(kGetScaleWidth(10));
|
|
make.width.mas_equalTo(kGetScaleWidth(171));
|
|
make.height.mas_equalTo(kGetScaleWidth(68));
|
|
}];
|
|
[self.mewMatchingView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(15));
|
|
make.top.mas_equalTo(kGetScaleWidth(10));
|
|
make.width.mas_equalTo(kGetScaleWidth(171));
|
|
make.height.mas_equalTo(kGetScaleWidth(68));
|
|
}];
|
|
[self.mewCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.leading.trailing.equalTo(self).inset(kGetScaleWidth(0));
|
|
make.top.equalTo(self.mewMahoganyView.mas_bottom).mas_offset(kGetScaleWidth(6));
|
|
make.height.mas_equalTo(kGetScaleWidth(69));
|
|
}];
|
|
[self.mewTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20));
|
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
|
make.leading.mas_equalTo(kGetScaleWidth(18));
|
|
}];
|
|
[self.mewSelecteBGView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(15));
|
|
make.width.mas_equalTo(kGetScaleWidth(52));
|
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
|
make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20));
|
|
}];
|
|
[self.mewChangeBGView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(73));
|
|
make.width.mas_equalTo(kGetScaleWidth(64));
|
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
|
make.top.equalTo(self.mewCollectionView.mas_bottom).mas_offset(kGetScaleWidth(20));
|
|
}];
|
|
|
|
[self.mewSelecteImage mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.width.height.mas_equalTo(kGetScaleWidth(14));
|
|
make.centerY.equalTo(self.mewSelecteBGView);
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(7));
|
|
}];
|
|
[self.mewSelecteTextView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.equalTo(self.mewSelecteBGView);
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(22));
|
|
}];
|
|
[self.mewSelecteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.equalTo(self.mewSelecteBGView);
|
|
}];
|
|
[self.mewChangeImage mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.width.height.mas_equalTo(kGetScaleWidth(14));
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(7));
|
|
make.centerY.equalTo(self.mewChangeBGView);
|
|
}];
|
|
[self.mewChangeTextView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerY.equalTo(self.mewChangeBGView);
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(22));
|
|
}];
|
|
[self.mewChangeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.equalTo(self.mewChangeBGView);
|
|
}];
|
|
|
|
}
|
|
-(void)setMewMeunInfo:(MewMainHomeMenuInfoModel *)mewMeunInfo{
|
|
_mewMeunInfo = mewMeunInfo;
|
|
_mewMahoganyView.image = nil;
|
|
[_mewMahoganyView loadImageWithUrl:_mewMeunInfo.icon completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
|
self.mewMahoganyView.image = image;
|
|
}];
|
|
}
|
|
-(void)setMewGameList:(NSMutableArray *)mewGameList{
|
|
_mewGameList = mewGameList;
|
|
[self.mewCollectionView reloadData];
|
|
}
|
|
#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource
|
|
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
|
|
return self.mewGameList.count;
|
|
}
|
|
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
|
|
MewMainHomeMakeFriendHeadCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadCell class]) forIndexPath:indexPath];
|
|
cell.tabModel = [self.mewGameList safeObjectAtIndex1:indexPath.row];
|
|
return cell;
|
|
}
|
|
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
|
|
MewMainHomeGameTabModel *tapModel = [self.mewGameList safeObjectAtIndex1:indexPath.row];
|
|
if(tapModel.isOnClick == YES){
|
|
tapModel.isOnClick = NO;
|
|
}else{
|
|
for (MewMainHomeGameTabModel *obj in self.mewGameList) {
|
|
obj.isOnClick = NO;
|
|
}
|
|
tapModel.isOnClick = YES;
|
|
}
|
|
[self.mewCollectionView reloadData];
|
|
MewMainHomeMakeFriendHeadViewType type = type = tapModel.isOnClick == YES ? MewMainHomeMakeFriendHeadViewTyep_Game_Select: MewMainHomeMakeFriendHeadViewTyep_Game_No_Select;
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){
|
|
[self.delegate mew_selectGameFriendAction:tapModel type:type sender:nil];
|
|
}
|
|
}
|
|
-(void)mew_clickMahoganyAction{
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGodFlightAction:)]){
|
|
[self.delegate mew_selectGodFlightAction:self.mewMeunInfo];
|
|
}
|
|
}
|
|
-(void)mew_clickMatchingAction{
|
|
MewMainHomeMenuInfoModel *infoModel = [MewMainHomeMenuInfoModel new];
|
|
infoModel.isOneClickMatching = YES;
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectOneClickMatchingAction:)]){
|
|
[self.delegate mew_selectOneClickMatchingAction:infoModel];
|
|
}
|
|
}
|
|
-(void)setIsNoChooseSex:(BOOL)isNoChooseSex{
|
|
_isNoChooseSex = isNoChooseSex;
|
|
self.mewSelecteBtn.selected = !self.mewSelecteBtn.selected;
|
|
if(self.mewSelecteBtn.selected){
|
|
self.mewSelecteImage.transform = CGAffineTransformMakeRotation(M_PI);
|
|
}else{
|
|
self.mewSelecteImage.transform = CGAffineTransformIdentity;
|
|
}
|
|
}
|
|
-(void)mew_clickChangeBtnAction{
|
|
[UIView animateWithDuration:0.5 animations:^{
|
|
self.mewChangeImage.transform = CGAffineTransformMakeRotation(M_PI);
|
|
}completion:^(BOOL finished) {
|
|
self.mewChangeImage.transform = CGAffineTransformIdentity;
|
|
}];
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){
|
|
[self.delegate mew_selectGameFriendAction:nil type:MewMainHomeMakeFriendHeadViewTyep_Change sender:nil];
|
|
}
|
|
}
|
|
-(void)mew_clickSelecteBtnAction{
|
|
self.mewSelecteBtn.selected = !self.mewSelecteBtn.selected;
|
|
if(self.mewSelecteBtn.selected){
|
|
self.mewSelecteImage.transform = CGAffineTransformMakeRotation(M_PI);
|
|
}else{
|
|
self.mewSelecteImage.transform = CGAffineTransformIdentity;
|
|
}
|
|
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(mew_selectGameFriendAction:type:sender:)]){
|
|
[self.delegate mew_selectGameFriendAction:nil type:MewMainHomeMakeFriendHeadViewTyep_Sex sender:self.mewSelecteTextView];
|
|
}
|
|
}
|
|
#pragma mark - 懒加载
|
|
- (NetImageView *)mewMahoganyView{
|
|
if(!_mewMahoganyView){
|
|
NetImageConfig *config = [NetImageConfig new];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
_mewMahoganyView = [[NetImageView alloc]initWithConfig:config];
|
|
_mewMahoganyView.contentMode = UIViewContentModeScaleAspectFill;
|
|
_mewMahoganyView.clipsToBounds = YES ;
|
|
_mewMahoganyView.layer.cornerRadius = kGetScaleWidth(10);
|
|
_mewMahoganyView.layer.masksToBounds = YES;
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickMahoganyAction)];
|
|
_mewMahoganyView.userInteractionEnabled = YES;
|
|
[_mewMahoganyView addGestureRecognizer:tap];
|
|
}
|
|
return _mewMahoganyView;
|
|
}
|
|
- (NetImageView *)mewMatchingView{
|
|
if(!_mewMatchingView){
|
|
NetImageConfig *config = [NetImageConfig new];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
_mewMatchingView = [[NetImageView alloc]initWithConfig:config];
|
|
_mewMatchingView.image = kImage(@"mew_main_home_friend_head_matching");
|
|
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(mew_clickMatchingAction)];
|
|
_mewMatchingView.userInteractionEnabled = YES;
|
|
[_mewMatchingView addGestureRecognizer:tap];
|
|
}
|
|
return _mewMatchingView;
|
|
}
|
|
- (UICollectionView *)mewCollectionView{
|
|
if(!_mewCollectionView){
|
|
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];
|
|
layout.itemSize = CGSizeMake(kGetScaleWidth(86), kGetScaleWidth(69));
|
|
layout.sectionInset = UIEdgeInsetsMake(0, kGetScaleWidth(12), 0, kGetScaleWidth(12));
|
|
layout.minimumLineSpacing = 0;
|
|
layout.minimumInteritemSpacing = 0;
|
|
_mewCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
|
|
_mewCollectionView.delegate = self;
|
|
_mewCollectionView.dataSource = self;
|
|
_mewCollectionView.backgroundColor = [UIColor clearColor];
|
|
[_mewCollectionView registerClass:[MewMainHomeMakeFriendHeadCell class] forCellWithReuseIdentifier:NSStringFromClass([MewMainHomeMakeFriendHeadCell class])];
|
|
}
|
|
return _mewCollectionView;
|
|
}
|
|
- (UIView *)mewChangeBGView{
|
|
if(!_mewChangeBGView){
|
|
_mewChangeBGView = [UIView new];
|
|
_mewChangeBGView.backgroundColor = UIColorRGBAlpha(0x000000, 0.06);
|
|
_mewChangeBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
|
|
_mewChangeBGView.layer.masksToBounds = YES;
|
|
}
|
|
return _mewChangeBGView;
|
|
}
|
|
- (UILabel *)mewChangeTextView{
|
|
if(!_mewChangeTextView){
|
|
_mewChangeTextView = [UILabel labelInitWithText:@"换一换" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)];
|
|
}
|
|
return _mewChangeTextView;
|
|
}
|
|
|
|
- (UIImageView *)mewChangeImage{
|
|
if(!_mewChangeImage){
|
|
_mewChangeImage = [UIImageView new];
|
|
_mewChangeImage.image = kImage(@"mew_main_home_friend_head_change") ;
|
|
}
|
|
return _mewChangeImage;
|
|
}
|
|
- (UIButton *)mewChangeBtn{
|
|
if(!_mewChangeBtn){
|
|
_mewChangeBtn = [UIButton new];
|
|
_mewChangeBtn.yn_acceptEventInterval = 1;
|
|
[_mewChangeBtn addTarget:self action:@selector(mew_clickChangeBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
|
|
|
}
|
|
return _mewChangeBtn;
|
|
}
|
|
- (UIView *)mewSelecteBGView{
|
|
if(!_mewSelecteBGView){
|
|
_mewSelecteBGView = [UIView new];
|
|
_mewSelecteBGView.backgroundColor = UIColorRGBAlpha(0x000000, 0.06);
|
|
_mewSelecteBGView.layer.cornerRadius = kGetScaleWidth(22)/2;
|
|
_mewSelecteBGView.layer.masksToBounds = YES;
|
|
}
|
|
return _mewSelecteBGView;
|
|
}
|
|
- (UILabel *)mewSelecteTextView{
|
|
if(!_mewSelecteTextView){
|
|
_mewSelecteTextView = [UILabel labelInitWithText:@"全部" font:kFontRegular(11) textColor:UIColorFromRGB(0x696D7A)];
|
|
}
|
|
return _mewSelecteTextView;
|
|
}
|
|
-(UIButton *)mewSelecteBtn{
|
|
if(!_mewSelecteBtn){
|
|
_mewSelecteBtn = [UIButton new];
|
|
|
|
[ _mewSelecteBtn addTarget:self action:@selector(mew_clickSelecteBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
return _mewSelecteBtn;
|
|
}
|
|
- (UIImageView *)mewSelecteImage{
|
|
if(!_mewSelecteImage){
|
|
_mewSelecteImage = [UIImageView new];
|
|
_mewSelecteImage.image = kImage(@"mew_main_home_friend_head_selecte");
|
|
}
|
|
return _mewSelecteImage;
|
|
}
|
|
- (UILabel *)mewTitleView{
|
|
if(!_mewTitleView){
|
|
_mewTitleView = [UILabel labelInitWithText:@"玩伴推荐" font:kFontMedium(16) textColor:UIColorFromRGB(0x2B2D33)];
|
|
}
|
|
return _mewTitleView;
|
|
}
|
|
@end
|