236 lines
9.3 KiB
Objective-C
236 lines
9.3 KiB
Objective-C
//
|
|
// YMMineDressUpListViewController.m
|
|
// YUMI
|
|
//
|
|
// Created by YUMI on 2021/12/15.
|
|
//
|
|
|
|
#import "XPMineDressUpListViewController.h"
|
|
///Third
|
|
#import <Masonry/Masonry.h>
|
|
///Tool
|
|
#import "YUMIMacroUitls.h"
|
|
#import "NSArray+Safe.h"
|
|
///View
|
|
#import "XPMineHeadwearTableViewCell.h"
|
|
#import "XPMineCarTableViewCell.h"
|
|
#import "XPMineNameplateTableViewCell.h"
|
|
#import "XPMineDressEmptyTableViewCell.h"
|
|
#import "XPMineNobleCardTableViewCell.h"
|
|
///P
|
|
#import "XPMineDressUpPresenter.h"
|
|
#import "XPMineDressUpProtocol.h"
|
|
///Model
|
|
#import "NobleCardModel.h"
|
|
|
|
@interface XPMineDressUpListViewController ()<UITableViewDelegate, UITableViewDataSource, XPMineDressUpProtocol, XPMineNameplateTableViewCellDelegate, XPMineHeadwearTableViewCellDelegate, XPMineCarTableViewCellDelegate, XPMineNobleCardTableViewCellDelegate>
|
|
///列表
|
|
@property (nonatomic,strong) UITableView *tableView;
|
|
///数据源
|
|
@property (nonatomic,strong) NSArray *datasource;
|
|
@end
|
|
|
|
@implementation XPMineDressUpListViewController
|
|
|
|
- (XPMineDressUpPresenter *)createPresenter {
|
|
return [[XPMineDressUpPresenter alloc] init];
|
|
}
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
[self initSubViews];
|
|
[self initSubViewConstraints];
|
|
}
|
|
|
|
#pragma mark - Private Method
|
|
- (void)initSubViews {
|
|
[self.view addSubview:self.tableView];
|
|
}
|
|
|
|
- (void)initSubViewConstraints {
|
|
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.mas_equalTo(self.view);
|
|
}];
|
|
}
|
|
#pragma mark - XPMineNameplateTableViewCellDelegate
|
|
- (void)xPMineNameplateTableViewCell:(XPMineNameplateTableViewCell *)view nameplateId:(NSString *)nameplateId {
|
|
[self.presenter useNameplate:nameplateId];
|
|
}
|
|
|
|
#pragma mark - XPMineHeadwearTableViewCellDelegate
|
|
- (void)xPMineHeadwearTableViewCell:(XPMineHeadwearTableViewCell *)view headwearId:(NSString *)headwearId {
|
|
[self.presenter useHeader:headwearId];
|
|
}
|
|
#pragma mark - XPMineCarTableViewCellDelegate
|
|
- (void)xPMineCarTableViewCell:(XPMineCarTableViewCell *)cell carId:(NSString *)carId {
|
|
[self.presenter useCar:carId];
|
|
}
|
|
#pragma mark - XPMineNobleCardTableViewCellDelegate
|
|
- (void)xPMineNobleCardTableViewCell:(XPMineNobleCardTableViewCell *)view nobleCardId:(NSString *)nobleCardId {
|
|
[self.presenter userNobleCard:nobleCardId];
|
|
}
|
|
|
|
#pragma mark - XPMineDressUpProtocol
|
|
- (void)getUserHeadwearListSuccess:(NSArray *)array {
|
|
self.datasource = array;
|
|
[self.tableView reloadData];
|
|
}
|
|
|
|
- (void)getUserCarListSuccess:(NSArray *)array {
|
|
self.datasource = array;
|
|
[self.tableView reloadData];
|
|
}
|
|
|
|
- (void)getUserNameplateListSuccess:(NSArray *)array {
|
|
self.datasource = array;
|
|
[self.tableView reloadData];
|
|
}
|
|
|
|
- (void)getUserNobleCardListSuccess:(NSArray *)array {
|
|
self.datasource = array;
|
|
[self.tableView reloadData];
|
|
}
|
|
|
|
- (void)useHeadwearSuccess:(NSString *)headWearId {
|
|
[self.presenter getUserHeadwearList];
|
|
[self showSuccessToast:headWearId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController6") : YMLocalizedString(@"XPMineDressUpListViewController1")];
|
|
|
|
}
|
|
|
|
- (void)useCarSuccess:(NSString *)carId {
|
|
[self.presenter getUserCarList];
|
|
[self showSuccessToast:carId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController7") : YMLocalizedString(@"XPMineDressUpListViewController3")];
|
|
}
|
|
|
|
- (void)useNameplateSuccess:(NSString *)nameplateId {
|
|
[self.presenter getUserNameplateList];
|
|
[self showSuccessToast:nameplateId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController8") : YMLocalizedString(@"XPMineDressUpListViewController5")];
|
|
}
|
|
|
|
- (void)userNobleCardSuccess:(NSString *)nobleCardId {
|
|
[self showSuccessToast:nobleCardId.integerValue == 0 ? YMLocalizedString(@"XPMineDressUpViewController9") : YMLocalizedString(@"XPMineDressUpListViewController7")];
|
|
if (nobleCardId.integerValue == 0) {
|
|
for (NobleCardModel *model in self.datasource) {
|
|
model.used = NO;
|
|
}
|
|
} else {
|
|
for (NobleCardModel *model in self.datasource) {
|
|
if ([model.cardId isEqualToString:nobleCardId]) {
|
|
model.used = YES;
|
|
} else {
|
|
model.used = NO;
|
|
}
|
|
}
|
|
}
|
|
[self.tableView reloadData];
|
|
}
|
|
|
|
#pragma mark - JXCategoryListContentViewDelegate
|
|
- (UIView *)listView {
|
|
return self.view;
|
|
}
|
|
|
|
#pragma mark - UITableViewDelegate And UITableViewDataSource
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
return self.datasource.count > 0 ? self.datasource.count : 1;
|
|
}
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
if (self.type == DressUpListType_Noble) {
|
|
return self.datasource.count > 0 ? 236 : (KScreenHeight - kNavigationHeight - 100 -50);
|
|
} else if (self.type == DressUpListType_Nameplate) {
|
|
return self.datasource.count > 0 ? 76 : (KScreenHeight - kNavigationHeight - 100 -50);
|
|
} else {
|
|
return self.datasource.count > 0 ? 120 : (KScreenHeight - kNavigationHeight - 100 -50);
|
|
}
|
|
}
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
if (self.datasource.count > 0) {
|
|
if (self.type == DressUpListType_HeadWear) {
|
|
XPMineHeadwearTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineHeadwearTableViewCell class])];
|
|
if (cell == nil) {
|
|
cell = [[XPMineHeadwearTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineHeadwearTableViewCell class])];
|
|
}
|
|
cell.headwearModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
|
cell.delegate = self;
|
|
return cell;
|
|
} else if(self.type == DressUpListType_Car) {
|
|
XPMineCarTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineCarTableViewCell class])];
|
|
if (cell == nil) {
|
|
cell = [[XPMineCarTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineCarTableViewCell class])];
|
|
}
|
|
cell.carInfo = [self.datasource safeObjectAtIndex1:indexPath.row];
|
|
cell.delegate = self;
|
|
return cell;
|
|
} else if (self.type == DressUpListType_Noble) {
|
|
XPMineNobleCardTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineNobleCardTableViewCell class])];
|
|
if (cell == nil) {
|
|
cell = [[XPMineNobleCardTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineNobleCardTableViewCell class])];
|
|
}
|
|
cell.nobleCardModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
|
cell.delegate = self;
|
|
return cell;
|
|
} else {
|
|
XPMineNameplateTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineNameplateTableViewCell class])];
|
|
if (cell == nil) {
|
|
cell = [[XPMineNameplateTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineNameplateTableViewCell class])];
|
|
}
|
|
cell.nameplateModel = [self.datasource safeObjectAtIndex1:indexPath.row];
|
|
cell.delegate = self;
|
|
return cell;
|
|
}
|
|
}
|
|
|
|
XPMineDressEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineDressEmptyTableViewCell class])];
|
|
if (cell == nil) {
|
|
cell = [[XPMineDressEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineDressEmptyTableViewCell class])];
|
|
}
|
|
cell.emptyTitle = self.type == DressUpListType_HeadWear ? YMLocalizedString(@"XPMineDressUpListViewController11") : self.type == DressUpListType_Car ? YMLocalizedString(@"XPMineDressUpListViewController12") : YMLocalizedString(@"XPMineDressUpListViewController10" );
|
|
return cell;
|
|
}
|
|
|
|
#pragma mark - Getters And Setters
|
|
- (void)setType:(DressUpListType)type {
|
|
_type = type;
|
|
switch (type) {
|
|
case DressUpListType_HeadWear:
|
|
[self.presenter getUserHeadwearList];
|
|
break;
|
|
case DressUpListType_Car:
|
|
[self.presenter getUserCarList];
|
|
break;
|
|
case DressUpListType_Nameplate:
|
|
[self.presenter getUserNameplateList];
|
|
break;
|
|
case DressUpListType_Noble:
|
|
[self.presenter getUserNobleCardList];
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
- (UITableView *)tableView {
|
|
if (!_tableView) {
|
|
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
|
_tableView.delegate = self;
|
|
_tableView.dataSource = self;
|
|
_tableView.tableFooterView = [UIView new];
|
|
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
|
_tableView.backgroundColor = [UIColor clearColor];
|
|
if (@available(iOS 11.0, *)) {
|
|
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
|
|
}
|
|
_tableView.contentInset = UIEdgeInsetsMake(0, 0, kSafeAreaBottomHeight, 0);
|
|
[_tableView registerClass:[XPMineNameplateTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineNameplateTableViewCell class])];
|
|
[_tableView registerClass:[XPMineCarTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineCarTableViewCell class])];
|
|
[_tableView registerClass:[XPMineHeadwearTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineHeadwearTableViewCell class])];
|
|
[_tableView registerClass:[XPMineNobleCardTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineNobleCardTableViewCell class])];
|
|
[_tableView registerClass:[XPMineDressEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineDressEmptyTableViewCell class])];
|
|
}
|
|
return _tableView;
|
|
}
|
|
|
|
|
|
@end
|