Files
peko-ios/YuMi/Modules/YMNewHome/View/CreateEventSelectRoomViewController.m

263 lines
8.4 KiB
Objective-C

//
// CreateEventSelectRoomViewController.m
// YuMi
//
// Created by P on 2025/5/12.
//
#import "CreateEventSelectRoomViewController.h"
#import "CreateEventPresenter.h"
#import "EventCenterEmptyCell.h"
@interface CreateEventSelectRoomEmptyCell : UITableViewCell
+ (CGFloat)cellHeight;
+ (void)registerTo:(UITableView *)tableView;
+ (CreateEventSelectRoomEmptyCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath;
@end
@implementation CreateEventSelectRoomEmptyCell
{
UILabel *titleLabel;
UIImageView *ufoImageView;
}
+ (CGFloat)cellHeight {
return 170;
}
+ (void)registerTo:(UITableView *)tableView {
[tableView registerClass:[self class]
forCellReuseIdentifier:NSStringFromClass([self class])];
}
+ (CreateEventSelectRoomEmptyCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath {
return [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([self class]) forIndexPath:indexPath];
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
titleLabel = [UILabel labelInitWithText:YMLocalizedString(@"20.20.59_text_19")
font:kFontRegular(14)
textColor:UIColorFromRGB(0xafb1b3)];
ufoImageView = [[UIImageView alloc] initWithImage:kImage(@"common_empty_UFO")];
[self.contentView addSubview:ufoImageView];
[self.contentView addSubview:titleLabel];
[ufoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.contentView);
make.top.mas_equalTo(16);
make.size.mas_equalTo(CGSizeMake(110, 110));
}];
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.contentView);
make.top.mas_equalTo(ufoImageView.mas_bottom).offset(16);
make.height.mas_equalTo(20);
}];
}
return self;
}
@end
@interface CreateEventSelectRoomCell : UITableViewCell
{
NetImageView *avatar;
UILabel *nameLabel;
UILabel *idLabel;
}
+ (CGFloat)cellHeight;
+ (void)registerTo:(UITableView *)tableView;
+ (CreateEventSelectRoomCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath;
@end
@implementation CreateEventSelectRoomCell
+ (CGFloat)cellHeight {
return 78;
}
+ (void)registerTo:(UITableView *)tableView {
[tableView registerClass:[self class]
forCellReuseIdentifier:NSStringFromClass([self class])];
}
+ (CreateEventSelectRoomCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath {
return [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([self class]) forIndexPath:indexPath];
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
NetImageConfig * config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
config.imageType = ImageTypeUserIcon;
avatar = [[NetImageView alloc]initWithConfig:config];
[avatar setCornerRadius:8];
[self.contentView addSubview: avatar];
nameLabel = [UILabel labelInitWithText:@"123" font:kFontSemibold(15) textColor:UIColorFromRGB(0x313131)];
[self.contentView addSubview:nameLabel];
idLabel = [UILabel labelInitWithText:@"456" font:kFontRegular(13) textColor:UIColorFromRGB(0x7b7b7d)];
[self.contentView addSubview:idLabel];
[avatar mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.contentView);
make.leading.mas_equalTo(16);
make.size.mas_equalTo(CGSizeMake(48, 48));
}];
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(avatar).offset(4);
make.leading.mas_equalTo(avatar).offset(11);
make.height.mas_equalTo(21);
}];
[idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(avatar).offset(-4);
make.leading.mas_equalTo(avatar).offset(11);
make.height.mas_equalTo(18);
}];
}
return self;
}
@end
@interface CreateEventSelectRoomViewController () <UITableViewDelegate, UITableViewDataSource>
{
UITableView *tableView;
}
@property (nonatomic, strong) NSMutableArray *myRooms;
@property (nonatomic, strong) NSMutableArray *adminRooms;
@end
@implementation CreateEventSelectRoomViewController
- (__kindof id)presenter {
return [CreateEventPresenter new];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.title = YMLocalizedString(@"20.20.59_text_14");
self.myRooms = [NSMutableArray array];
self.adminRooms = [NSMutableArray array];
[self setupUI];
}
- (void)setupUI {
tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
tableView.separatorInset = UIEdgeInsetsZero;
tableView.backgroundColor = [UIColor whiteColor];
[CreateEventSelectRoomCell registerTo:tableView];
// [CreateEventSelectRoomEmptyCell registerTo:tableView];
[EventCenterEmptyCell registerTo:tableView];
[self.view addSubview:tableView];
}
#pragma mark - Delegate & DataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return self.myRooms.count == 0 ? 1 : self.myRooms.count;
break;
case 1:
return self.adminRooms.count == 0 ? 1 : self.adminRooms.count;
break;
default:
return 0;
break;
}
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
switch (section) {
case 0: {
return [self sectionHeaderTitle:YMLocalizedString(@"20.20.59_text_20")];
}
break;
case 1: {
return [self sectionHeaderTitle:YMLocalizedString(@"20.20.59_text_21")];
}
break;
default:
return [UIView new];
break;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section) {
case 0: {
return self.myRooms.count == 0 ? [CreateEventSelectRoomEmptyCell cellHeight] : [CreateEventSelectRoomCell cellHeight];
}
break;
case 1: {
return self.adminRooms.count == 0 ? [CreateEventSelectRoomEmptyCell cellHeight] : [CreateEventSelectRoomCell cellHeight];
}
break;
default:
return 0;
break;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [UITableViewCell new];
switch (indexPath.section) {
case 0: {
if (self.myRooms.count == 0) {
cell = [EventCenterEmptyCell cellFor:tableView atIndexPath:indexPath];
} else {
cell = [CreateEventSelectRoomCell cellFor:tableView atIndexPath:indexPath];
}
}
break;
case 1: {
if (self.adminRooms.count == 0) {
cell = [EventCenterEmptyCell cellFor:tableView atIndexPath:indexPath];
} else {
cell = [CreateEventSelectRoomCell cellFor:tableView atIndexPath:indexPath];
}
}
break;
default: {
cell = [UITableViewCell new];
}
break;
}
return cell;
}
#pragma mark -
- (UIView *)sectionHeaderTitle:(NSString *)title {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 30)];
view.backgroundColor = UIColorFromRGB(0xf2f3f7);
UILabel *label = [UILabel labelInitWithText:title font:kFontSemibold(14) textColor:UIColorFromRGB(0x313131)];
[view addSubview:label];
[label mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(view);
make.leading.mas_equalTo(16);
}];
return view;
}
@end