Files
real-e-party-iOS/YuMi/Modules/YMNewHome/View/CreateEventSelectRoomViewController.m
edwinQQQ a35a711be6 chore: Initial clean commit
- Removed YuMi/Library/ (138 MB, not tracked)
- Removed YuMi/Resources/ (23 MB, not tracked)
- Removed old version assets (566 files, not tracked)
- Excluded Pods/, xcuserdata/ and other build artifacts
- Clean repository optimized for company server deployment
2025-10-09 16:19:14 +08:00

271 lines
8.6 KiB
Objective-C

//
// CreateEventSelectRoomViewController.m
// YuMi
//
// Created by P on 2025/5/12.
//
#import "CreateEventSelectRoomViewController.h"
#import "CreateEventPresenter.h"
#import "EventCenterEmptyCell.h"
@interface CreateEventSelectRoomCell : UITableViewCell
{
NetImageView *avatar;
UILabel *nameLabel;
UILabel *idLabel;
}
+ (CGFloat)cellHeight;
+ (void)registerTo:(UITableView *)tableView;
+ (CreateEventSelectRoomCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath;
- (void)updateCell:(EventRoomModel *)model;
@end
@implementation CreateEventSelectRoomCell
{
EventRoomModel *cellModel;
}
+ (CGFloat)cellHeight {
return 64;
}
+ (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]) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.separatorInset = UIEdgeInsetsZero;
self.contentView.backgroundColor = [UIColor whiteColor];
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.mas_trailing).offset(11);
make.height.mas_equalTo(21);
}];
[idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(avatar).offset(-4);
make.leading.mas_equalTo(avatar.mas_trailing).offset(11);
make.height.mas_equalTo(18);
}];
}
return self;
}
- (void)updateCell:(EventRoomModel *)model {
cellModel = model;
avatar.imageUrl = model.avatar;
nameLabel.text = model.roomName;
idLabel.text = [NSString stringWithFormat:@"ID:%@", @(model.erbanNo)];
}
@end
@interface CreateEventSelectRoomViewController () <UITableViewDelegate, UITableViewDataSource, CreateEventPresenterProcotol>
{
UITableView *tableView;
}
@property (nonatomic, strong) EventRoomListModel *model;
@end
@implementation CreateEventSelectRoomViewController
- (CreateEventPresenter *)createPresenter {
return [CreateEventPresenter new];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.title = YMLocalizedString(@"20.20.59_text_14");
[self setupUI];
[self.presenter loadMyRooms];
}
- (void)setupUI {
tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
tableView.separatorInset = UIEdgeInsetsZero;
tableView.backgroundColor = [UIColor whiteColor];
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
[CreateEventSelectRoomCell registerTo:tableView];
[EventCenterEmptyCell registerTo:tableView withCustomID:@""];
[self.view addSubview:tableView];
}
#pragma mark - CreateEventPresenterProcotol
- (void)myRoomListSuccess:(EventRoomListModel *)listModel {
_model = listModel;
[tableView reloadData];
}
- (void)myRoomListFailure:(NSString *)msg {
}
#pragma mark - Delegate & DataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return 1;
break;
case 1:
return self.model.manageRooms.count == 0 ? 1 : self.model.manageRooms.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.model.selfRoom == nil ? [EventCenterEmptyCell cellHeight] : [CreateEventSelectRoomCell cellHeight];
}
break;
case 1: {
return self.model.manageRooms.count == 0 ? [EventCenterEmptyCell 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.model.selfRoom == nil) {
cell = [EventCenterEmptyCell cellFor:tableView customID:@"" atIndexPath:indexPath];
} else {
cell = [CreateEventSelectRoomCell cellFor:tableView atIndexPath:indexPath];
[(CreateEventSelectRoomCell *)cell updateCell:self.model.selfRoom];
}
}
break;
case 1: {
if (self.model.manageRooms.count == 0) {
cell = [EventCenterEmptyCell cellFor:tableView customID:@"" atIndexPath:indexPath];
} else {
cell = [CreateEventSelectRoomCell cellFor:tableView atIndexPath:indexPath];
[(CreateEventSelectRoomCell *)cell updateCell:[self.model.manageRooms xpSafeObjectAtIndex:indexPath.row]];
}
}
break;
default: {
cell = [UITableViewCell new];
}
break;
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
if (self.didSelectedRoom) {
switch (indexPath.section) {
case 0:
self.didSelectedRoom(self.model.selfRoom);
break;
case 1:
self.didSelectedRoom([self.model.manageRooms xpSafeObjectAtIndex:indexPath.row]);
break;
default:
break;
}
}
[self.navigationController popViewControllerAnimated:YES];
}
#pragma mark -
- (UIView *)sectionHeaderTitle:(NSString *)title {
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 30)];
view.backgroundColor = UIColorFromRGB(0xf2f3f7);
if ([title isEqualToString:YMLocalizedString(@"20.20.59_text_21")]) {
// view.backgroundColor = [UIColor whiteColor];
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;
}
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