最后提交

This commit is contained in:
启星
2025-10-27 17:05:46 +08:00
parent 92de736c3f
commit 3f76f23cb0
19 changed files with 201 additions and 32 deletions

View File

@@ -11,7 +11,7 @@
#define messageNameColor RGB16(0x00C8FF)
#define messageGiftColor RGB16(0xFFE309)
#define messageBubbleColor RGB16A(0x000000, 0.3)
#define messageBubbleMargin 4
#define messageBubbleMargin 2
NSArray<NSValue *> *findAllOccurrencesOfString(NSString *fullString, NSString *substring) {
NSMutableArray<NSValue *> *occurrences = [NSMutableArray array];
NSRange searchRange = NSMakeRange(0, fullString.length);
@@ -316,13 +316,7 @@ NSInteger maxMessageCount = 20;
height = 28+19+13+8 + height;
}
}else if (model.messageType == QXRoomChatMessageTypeGift) {
// if ([model.FromUserInfo.chat_bubble isExist]) {
// height = [model.text heightForFont:[UIFont systemFontOfSize:14] width:ScaleWidth(280)-16*2-8];
// height = 16*2 + height+1;
// }else{
height = [model.text heightForFont:[UIFont systemFontOfSize:14] width:ScaleWidth(280)-16*2-8];
height = 8*2+messageBubbleMargin*2 + height+1;
// }
height = [model.text heightForFont:[UIFont systemFontOfSize:12] width:ScaleWidth(280)-16-8-8*2] + 12+4+1;
}else if(model.messageType == QXRoomChatMessageTypeEmoji){
if ([model.FromUserInfo.chat_bubble isExist]) {
height = 28+19+13+16 + 40;
@@ -330,7 +324,7 @@ NSInteger maxMessageCount = 20;
height = 28+19+13+8 + 40;
}
}else{
height = [model.text heightForFont:[UIFont systemFontOfSize:14] width:ScaleWidth(280)-16-8-8*2] + 12+16+1;
height = [model.text heightForFont:[UIFont systemFontOfSize:12] width:ScaleWidth(280)-16-8-8*2] + 12+4+1;
}
return height;
@@ -487,6 +481,7 @@ NSInteger maxMessageCount = 20;
-(void)initSubviews{
self.bgView = [[UIView alloc] init];
[self.contentView addSubview:self.bgView];
[self.bgView addRoundedCornersWithRadius:8];
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(16);
make.right.mas_equalTo(0);
@@ -501,7 +496,9 @@ NSInteger maxMessageCount = 20;
self.bubbleImageView.backgroundColor = messageBubbleColor;
[self.bgView addSubview:self.bubbleImageView];
[self.bubbleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgView);
make.left.right.equalTo(self.bgView);
make.top.mas_equalTo(-4);
make.bottom.mas_equalTo(4);
}];
self.headerImageView = [[UIImageView alloc] init];
@@ -601,7 +598,7 @@ NSInteger maxMessageCount = 20;
make.top.mas_equalTo(19);
}];
}else{
self.bgView.backgroundColor = UIColor.clearColor;
self.bgView.backgroundColor = messageBubbleColor;
[self.bgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(16);
make.right.mas_equalTo(-8);
@@ -613,7 +610,7 @@ NSInteger maxMessageCount = 20;
make.top.mas_equalTo(11);
}];
self.bubbleImageView.image = nil;
self.bubbleImageView.backgroundColor = messageBubbleColor;
self.bubbleImageView.backgroundColor = UIColor.clearColor;
}
}
-(NSMutableArray *)iconViewArray{
@@ -758,7 +755,7 @@ NSInteger maxMessageCount = 20;
self.titleLabel = [[UILabel alloc] init];
self.titleLabel.textColor = [UIColor whiteColor];
self.titleLabel.font = [UIFont systemFontOfSize:14];
self.titleLabel.font = [UIFont systemFontOfSize:12];
self.titleLabel.numberOfLines = 0;
[self.bgView addSubview:self.titleLabel];
// [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -768,8 +765,8 @@ NSInteger maxMessageCount = 20;
// }];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgView).offset(8);
make.top.mas_equalTo(8);
make.bottom.mas_equalTo(-8);
make.top.mas_equalTo(2);
make.bottom.mas_equalTo(-2);
make.right.mas_equalTo(-8);
}];
@@ -806,6 +803,10 @@ NSInteger maxMessageCount = 20;
// [self.iconViewArray addObject:iconImageView];
// }
}
-(void)layoutSubviews{
[super layoutSubviews];
[self.bgView addRoundedCornersWithRadius:self.bgView.height/2];
}
-(void)loadBubble{
// if ([self.message.FromUserInfo.chat_bubble isExist]) {
@@ -937,7 +938,9 @@ NSInteger maxMessageCount = 20;
self.bubbleImageView.backgroundColor = messageBubbleColor;
[self.bgView addSubview:self.bubbleImageView];
[self.bubbleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.bgView);
make.left.right.equalTo(self.bgView);
make.top.mas_equalTo(-4);
make.bottom.mas_equalTo(4);
}];
self.headerImageView = [[UIImageView alloc] init];
@@ -1077,7 +1080,14 @@ NSInteger maxMessageCount = 20;
}
return self;
}
-(void)layoutSubviews{
[super layoutSubviews];
if (self.message.messageType == QXRoomChatMessageTypeNotice) {
[self.bgView addRoundedCornersWithRadius:8];
}else{
[self.bgView addRoundedCornersWithRadius:self.bgView.height/2];
}
}
-(void)setMessage:(QXRoomChatListModel *)message{
_message = message;
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:message.text];
@@ -1115,7 +1125,7 @@ NSInteger maxMessageCount = 20;
}
}
if (message.messageType == QXRoomChatMessageTypeNotice) {
[attr yy_setColor:messageNameColor range:NSMakeRange(0, attr.length)];
[attr yy_setColor:messageNoticeColor range:NSMakeRange(0, attr.length)];
}
self.titleLabel.attributedText = attr;
}
@@ -1136,13 +1146,13 @@ NSInteger maxMessageCount = 20;
self.titleLabel = [[UILabel alloc] init];
// self.titleLabel.textColor = RGB16(0XD1A9FE);
self.titleLabel.textColor = UIColor.whiteColor;
self.titleLabel.font = [UIFont systemFontOfSize:14];
self.titleLabel.font = [UIFont systemFontOfSize:12];
self.titleLabel.numberOfLines = 0;
[self.bgView addSubview:self.titleLabel];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.bgView).offset(8);
make.top.mas_equalTo(8);
make.bottom.mas_equalTo(-8);
make.top.mas_equalTo(2);
make.bottom.mas_equalTo(-2);
make.right.mas_equalTo(-8);
}];
}