Files
peko-ios/YuMi/Modules/YMNewHome/View/Cell/EventCenterEventCell.m

245 lines
8.6 KiB
Mathematica
Raw Normal View History

//
// EventCenterEventCell.m
// YuMi
//
// Created by P on 2025/4/29.
//
#import "EventCenterEventCell.h"
@interface EventCenterEventCell()
@property (nonatomic, strong) EventItemModel *model;
@property (nonatomic, strong) NetImageView *bgImageView;
@property (nonatomic, strong) NetImageView *avatarImageView;
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UILabel *idLabel;
@property (nonatomic, strong) UILabel *eventDescLabel;
@property (nonatomic, strong) UILabel *timeLabel;
@property (nonatomic, strong) UILabel *subLabel;
@property (nonatomic, strong) UIImageView *sexImageView;
@property (nonatomic, strong) UIImageView *clockImageView;
@property (nonatomic, strong) UIImageView *ringImageView;
@property (nonatomic, strong) UIButton *statusButton;
@end
@implementation EventCenterEventCell
+ (CGFloat)cellHeight {
return 130;
}
+ (void)registerTo:(UITableView *)tableView {
[tableView registerClass:[self class]
forCellReuseIdentifier:NSStringFromClass([self class])];
}
+ (EventCenterEventCell *)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)indexPath {
return [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([self class])
forIndexPath:indexPath];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
}
- (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];
[self.contentView addSubview:self.bgImageView];
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.contentView).inset(12);
make.leading.trailing.mas_equalTo(self.contentView).inset(15);
make.height.mas_equalTo(118);
}];
UIView *mask_1 = [self blackMask];
[self.contentView addSubview:mask_1];
[mask_1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.bgImageView);
}];
[self.contentView addSubview:self.avatarImageView];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.mas_equalTo(self.bgImageView).offset(12);
make.size.mas_equalTo(CGSizeMake(35, 35));
}];
[self.contentView addSubview:self.nameLabel];
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.avatarImageView).offset(1);
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(6);
}];
[self.contentView addSubview:self.sexImageView];
[self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.nameLabel);
make.leading.mas_equalTo(2);
make.size.mas_equalTo(CGSizeMake(14, 14));
}];
[self.contentView addSubview:self.idLabel];
[self.idLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(self.avatarImageView).offset(1);
make.leading.mas_equalTo(self.nameLabel);
}];
[self.contentView addSubview:self.eventDescLabel];
[self.eventDescLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.mas_equalTo(self.bgImageView).inset(12);
make.centerY.mas_equalTo(self.bgImageView);
}];
UIView *mask_2 = [self blackMask];
[self.contentView addSubview:mask_2];
[mask_2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.mas_equalTo(self.bgImageView);
make.height.mas_equalTo(32);
}];
[self.contentView addSubview:self.clockImageView];
[self.clockImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(mask_2);
make.leading.mas_equalTo(mask_2).offset(13);
make.size.mas_equalTo(CGSizeMake(14, 14));
}];
[self.contentView addSubview:self.timeLabel];
[self.timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.clockImageView.mas_trailing).offset(1);
make.centerY.mas_equalTo(mask_2);
}];
[self.contentView addSubview:self.subLabel];
[self.subLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(mask_2).offset(-13);
make.centerY.mas_equalTo(mask_2);
}];
[self.contentView addSubview:self.ringImageView];
[self.ringImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(mask_2);
make.trailing.mas_equalTo(self.subLabel.mas_leading).offset(-1);
make.size.mas_equalTo(CGSizeMake(14, 14));
}];
}
return self;
}
- (void)updateCell:(EventItemModel *)model {
_model = model;
self.bgImageView.imageUrl = model.eventBanner;
self.avatarImageView.imageUrl = model.roomAvatar;
self.nameLabel.text = @"123";
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", @(model.roomErbanNo)];
self.eventDescLabel.text = model.eventTopic;
self.timeLabel.text = @(model.eventStartTime).stringValue;
self.subLabel.text = @(model.subNum).stringValue;
}
#pragma mark -
- (NetImageView *)bgImageView {
if (!_bgImageView) {
NetImageConfig *config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultBannerPlaceholder];
_bgImageView = [[NetImageView alloc] initWithConfig:config];
[_bgImageView setCornerRadius:12];
}
return _bgImageView;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig *config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
[_avatarImageView setCornerRadius:35/2
corners:kCALayerMaxXMaxYCorner | kCALayerMaxXMinYCorner | kCALayerMinXMaxYCorner | kCALayerMinXMinYCorner
borderWidth:1
borderColor:UIColorFromRGB(0xfffff)];
}
return _avatarImageView;
}
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [UILabel labelInitWithText:@""
font:kFontRegular(14)
textColor:[UIColor whiteColor]];
}
return _nameLabel;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [UILabel labelInitWithText:@""
font:kFontRegular(12)
textColor:[UIColor colorWithWhite:1 alpha:0.6]];
}
return _idLabel;
}
- (UILabel *)eventDescLabel {
if (!_eventDescLabel) {
_eventDescLabel = [UILabel labelInitWithText:@""
font:kFontMedium(14)
textColor:[UIColor colorWithWhite:1 alpha:1]];
_eventDescLabel.numberOfLines = 0;
}
return _eventDescLabel;
}
- (UILabel *)timeLabel {
if (!_timeLabel) {
_timeLabel = [UILabel labelInitWithText:@""
font:kFontRegular(12)
textColor:[UIColor colorWithWhite:1 alpha:0.6]];
}
return _timeLabel;
}
- (UILabel *)subLabel {
if (!_subLabel) {
_subLabel = [UILabel labelInitWithText:@""
font:kFontRegular(12)
textColor:[UIColor colorWithWhite:1 alpha:0.6]];
}
return _subLabel;
}
- (UIImageView *)sexImageView {
if (!_sexImageView) {
_sexImageView = [UIImageView new];
}
return _sexImageView;
}
- (UIImageView *)clockImageView {
if (!_clockImageView) {
_clockImageView = [[UIImageView alloc] initWithImage:kImage(@"event_clock")];
}
return _clockImageView;
}
- (UIImageView *)ringImageView {
if (!_ringImageView) {
_ringImageView = [[UIImageView alloc] initWithImage:kImage(@"event_ring")];
}
return _ringImageView;
}
- (UIView *)blackMask {
UIView *v = [[UIView alloc] init];
v.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6];
return v;
}
@end