263 lines
8.4 KiB
Objective-C
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
|