You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
5.8 KiB

//
// HomeMsgTableViewCell.m
// tongxin
//
// Created by ecell on 2023/4/24.
// Copyright © 2023 xTT. All rights reserved.
//
#import "HomeMsgTableViewCell.h"
#import "UIImageView+MultiAvatar.h"
#import <CDDGroupAvatar/DCAvatar.h>
@interface HomeMsgTableViewCell ()
@property (nonatomic ,weak) UILabel *msgLabel;
@property (nonatomic ,weak) UILabel *timeLabel;
@property (nonatomic ,weak) UILabel *titleLabel;
@property (nonatomic ,weak) UIImageView *iconImg;
@property (nonatomic ,weak) UILabel *msgNumLabel;
@end
@implementation HomeMsgTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
{
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.backgroundColor = KKWhiteColorColor;
[self subCellView];
}
return self;
}
- (void)setListModel:(HomeChatListModel *)listModel
{
_listModel = listModel;
NSString *nameStr = @"";
if (listModel.groupid)
{
[DCAvatarManager sharedAvatar].distanceBetweenAvatar = 1;
[DCAvatarManager sharedAvatar].groupAvatarType = DCGroupAvatarQQType;
NSMutableArray *avatorArr = [NSMutableArray new];
for (NSDictionary *dic in listModel.members)
{
NSString *avator = dic[@"avator"];
[avatorArr addObject:avator];
if([dic[@"openid"] isEqualToString:listModel.message[@"senderID"]])
nameStr = [NSString stringWithFormat:@"%@:",dic[@"name"]];
}
[self.iconImg dc_setImageAvatarWithGroupId:listModel.groupid Source:avatorArr];
}
else
[self.iconImg sd_setImageWithURL:[NSURL URLWithString:listModel.avator] placeholderImage:ImageName_(@"设备默认头像")];
self.titleLabel.text = listModel.groupid ? @"家庭群聊" : listModel.name;
NSString *message = @"--";
if (listModel.message)
{
/// 类型 1 文字 3 语音 4表情
if ([listModel.message[@"type"] integerValue] == 1)
message = listModel.message[@"content"];
else if ([listModel.message[@"type"] integerValue] == 3)
message = @"[语音]";
else if ([listModel.message[@"type"] integerValue] == 4)
message = @"[表情]";
NSTimeInterval timestamp = [listModel.message[@"timestamp"] doubleValue];
self.timeLabel.text = [UICommon updateTimeForRow:[NSString stringWithFormat:@"%.0f",timestamp]];
}
self.msgLabel.text = [NSString stringWithFormat:@"%@%@",nameStr,message];
self.msgNumLabel.hidden = listModel.msgNum > 0 ? NO : YES;
self.msgNumLabel.text = [NSString stringWithFormat:@"%ld",listModel.msgNum];
if (listModel.msgNum > 0)
{
CGFloat ww = listModel.msgNum > 9 && listModel.msgNum < 100 ? 25 : listModel.msgNum > 99 ? 32 : 20;
[self.msgNumLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.iconImg.mas_right);
make.top.equalTo(self.iconImg).offset(3);
make.size.mas_equalTo(CGSizeMake(ww, 20));
}];
}
}
- (void)subCellView
{
UIImageView *iconImg = [UICommon ui_imageView:CGRectZero fileName:@""];
iconImg.layer.cornerRadius = 28;
iconImg.layer.masksToBounds = YES;
self.iconImg = iconImg;
[self.contentView addSubview:iconImg];
[iconImg mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.contentView);
make.left.equalTo(self.contentView).offset(15);
make.size.mas_equalTo(CGSizeMake(56, 56));
}];
UILabel *msgNumLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:Font_(13) textColor:KKWhiteColorColor text:@"" Radius:10];
msgNumLabel.layer.borderWidth = 1.5;
msgNumLabel.layer.borderColor = KKWhiteColorColor.CGColor;
msgNumLabel.backgroundColor = RGB(254, 83, 71);
msgNumLabel.hidden = YES;
self.msgNumLabel = msgNumLabel;
[self.contentView addSubview:msgNumLabel];
[msgNumLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(iconImg.mas_right).offset(3);
make.top.equalTo(iconImg).offset(-3);
make.size.mas_equalTo(CGSizeMake(20, 20));
}];
UILabel *titleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontBold_(16) textColor:KKTextBlackColor text:@"系统消息" Radius:0];
self.titleLabel = titleLabel;
[self.contentView addSubview:titleLabel];
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(iconImg.mas_right).offset(10);
make.bottom.equalTo(iconImg.mas_centerY).inset(3);
}];
UILabel *msgLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:Font_(13) textColor:KKGrey163 text:@"" Radius:0];
self.msgLabel = msgLabel;
[self.contentView addSubview:msgLabel];
[msgLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(titleLabel);
make.right.equalTo(self.contentView.mas_right).inset(15);
make.top.equalTo(iconImg.mas_centerY).offset(3);
}];
UILabel *timeLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:Font_(11) textColor:KKGrey163 text:@"" Radius:0];
self.timeLabel = timeLabel;
[self.contentView addSubview:timeLabel];
[timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.contentView.mas_right).inset(15);
make.centerY.equalTo(titleLabel);
}];
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end