修改
This commit is contained in:
@@ -7,6 +7,33 @@
|
||||
|
||||
#import "QXRoomChatListView.h"
|
||||
#import "UIImage+WebP.h"
|
||||
#define messageNameColor RGB16(0x00C8FF)
|
||||
#define messageGiftColor RGB16(0xFFE309)
|
||||
NSArray<NSValue *> *findAllOccurrencesOfString(NSString *fullString, NSString *substring) {
|
||||
NSMutableArray<NSValue *> *occurrences = [NSMutableArray array];
|
||||
NSRange searchRange = NSMakeRange(0, fullString.length);
|
||||
NSRange foundRange;
|
||||
|
||||
while (searchRange.location < fullString.length) {
|
||||
searchRange.length = fullString.length - searchRange.location;
|
||||
foundRange = [fullString rangeOfString:substring
|
||||
options:0
|
||||
range:searchRange];
|
||||
|
||||
if (foundRange.location != NSNotFound) {
|
||||
// 找到匹配,添加到数组
|
||||
[occurrences addObject:[NSValue valueWithRange:foundRange]];
|
||||
|
||||
// 更新搜索范围,从当前匹配位置之后继续搜索
|
||||
searchRange.location = foundRange.location + foundRange.length;
|
||||
} else {
|
||||
// 没有更多匹配,退出循环
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return [occurrences copy];
|
||||
}
|
||||
NSInteger maxMessageCount = 20;
|
||||
@interface QXRoomChatListView() <UITableViewDelegate,UITableViewDataSource,QXRoomSeatDelegate>
|
||||
@property (nonatomic,strong)UITableView *tableView;
|
||||
@@ -349,13 +376,37 @@ NSInteger maxMessageCount = 20;
|
||||
// self.titleLabel.text = message.text;
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:message.text];
|
||||
if ([message.FromUserInfo.nickname isExist]) {
|
||||
[attr yy_setColor:RGB16(0xFFE309) range:[message.text rangeOfString:message.FromUserInfo.nickname]];
|
||||
[attr yy_setColor:messageNameColor range:[message.text rangeOfString:message.FromUserInfo.nickname]];
|
||||
}
|
||||
if ([message.ToUserInfo.nickname isExist]) {
|
||||
[attr yy_setColor:RGB16(0xFFE309) range:[message.text rangeOfString:message.ToUserInfo.nickname]];
|
||||
[attr yy_setColor:messageNameColor range:[message.text rangeOfString:message.ToUserInfo.nickname]];
|
||||
}
|
||||
if ([message.GiftInfo.gift_name isExist]) {
|
||||
[attr yy_setColor:RGB16(0x00C8FF) range:[message.text rangeOfString:message.GiftInfo.gift_name]];
|
||||
NSArray *arr = [message.GiftInfo.gift_name componentsSeparatedByString:@","];
|
||||
for (NSString*gift_name in arr) {
|
||||
NSArray<NSValue *> *occurrences = findAllOccurrencesOfString(message.text, gift_name);
|
||||
for (NSValue *rangeValue in occurrences) {
|
||||
NSRange range = [rangeValue rangeValue];
|
||||
[attr yy_setColor:messageGiftColor range:range];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message.GiftInfos.count > 0) {
|
||||
for (QXGiftModel*gift in message.GiftInfos) {
|
||||
if ([gift.gift_name isExist]) {
|
||||
[attr yy_setColor:messageGiftColor range:[message.text rangeOfString:gift.gift_name]];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message.ToUserInfos.count > 0) {
|
||||
for (int i = 0; i < message.ToUserInfos.count; i++) {
|
||||
QXUserHomeModel*md = message.ToUserInfos[i];
|
||||
NSArray<NSValue *> *occurrences = findAllOccurrencesOfString(message.text, md.nickname);
|
||||
for (NSValue *rangeValue in occurrences) {
|
||||
NSRange range = [rangeValue rangeValue];
|
||||
[attr yy_setColor:messageNameColor range:range];
|
||||
}
|
||||
}
|
||||
}
|
||||
self.titleLabel.attributedText = attr;
|
||||
self.nameLabel.text = message.FromUserInfo.nickname;
|
||||
@@ -394,7 +445,7 @@ NSInteger maxMessageCount = 20;
|
||||
}];
|
||||
|
||||
self.nameLabel = [[UILabel alloc] init];
|
||||
self.nameLabel.textColor = [UIColor whiteColor];
|
||||
self.nameLabel.textColor = RGB16(0xCCA882);
|
||||
self.nameLabel.font = [UIFont systemFontOfSize:12];
|
||||
[self.contentView addSubview:self.nameLabel];
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -536,7 +587,7 @@ NSInteger maxMessageCount = 20;
|
||||
[self initSubviews];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
}
|
||||
|
||||
-(void)headerAction{
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(previewUserInfoWithUserId:)]) {
|
||||
@@ -549,13 +600,37 @@ NSInteger maxMessageCount = 20;
|
||||
// self.titleLabel.text = message.text;
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:message.text];
|
||||
if ([message.FromUserInfo.nickname isExist]) {
|
||||
[attr yy_setColor:RGB16(0xFFE309) range:[message.text rangeOfString:message.FromUserInfo.nickname]];
|
||||
[attr yy_setColor:messageNameColor range:[message.text rangeOfString:message.FromUserInfo.nickname]];
|
||||
}
|
||||
if ([message.ToUserInfo.nickname isExist]) {
|
||||
[attr yy_setColor:RGB16(0xFFE309) range:[message.text rangeOfString:message.ToUserInfo.nickname]];
|
||||
[attr yy_setColor:messageNameColor range:[message.text rangeOfString:message.ToUserInfo.nickname]];
|
||||
}
|
||||
if ([message.GiftInfo.gift_name isExist]) {
|
||||
[attr yy_setColor:RGB16(0x00C8FF) range:[message.text rangeOfString:message.GiftInfo.gift_name]];
|
||||
NSArray *arr = [message.GiftInfo.gift_name componentsSeparatedByString:@","];
|
||||
for (NSString*gift_name in arr) {
|
||||
NSArray<NSValue *> *occurrences = findAllOccurrencesOfString(message.text, gift_name);
|
||||
for (NSValue *rangeValue in occurrences) {
|
||||
NSRange range = [rangeValue rangeValue];
|
||||
[attr yy_setColor:messageGiftColor range:range];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message.GiftInfos.count > 0) {
|
||||
for (QXGiftModel*gift in message.GiftInfos) {
|
||||
if ([gift.gift_name isExist]) {
|
||||
[attr yy_setColor:messageGiftColor range:[message.text rangeOfString:gift.gift_name]];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message.ToUserInfos.count > 0) {
|
||||
for (int i = 0; i < message.ToUserInfos.count; i++) {
|
||||
QXUserHomeModel*md = message.ToUserInfos[i];
|
||||
NSArray<NSValue *> *occurrences = findAllOccurrencesOfString(message.text, md.nickname);
|
||||
for (NSValue *rangeValue in occurrences) {
|
||||
NSRange range = [rangeValue rangeValue];
|
||||
[attr yy_setColor:messageNameColor range:range];
|
||||
}
|
||||
}
|
||||
}
|
||||
self.titleLabel.attributedText = attr;
|
||||
self.nameLabel.text = message.FromUserInfo.nickname;
|
||||
@@ -593,7 +668,7 @@ NSInteger maxMessageCount = 20;
|
||||
make.bottom.right.equalTo(self.headerImageView).offset(2);
|
||||
}];
|
||||
self.nameLabel = [[UILabel alloc] init];
|
||||
self.nameLabel.textColor = [UIColor whiteColor];
|
||||
self.nameLabel.textColor = RGB16(0xCCA882);
|
||||
self.nameLabel.font = [UIFont systemFontOfSize:12];
|
||||
[self.contentView addSubview:self.nameLabel];
|
||||
[self.nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -752,13 +827,37 @@ NSInteger maxMessageCount = 20;
|
||||
|
||||
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:message.text];
|
||||
if ([message.FromUserInfo.nickname isExist]) {
|
||||
[attr yy_setColor:RGB16(0xFFE309) range:[message.text rangeOfString:message.FromUserInfo.nickname]];
|
||||
[attr yy_setColor:messageNameColor range:[message.text rangeOfString:message.FromUserInfo.nickname]];
|
||||
}
|
||||
if ([message.ToUserInfo.nickname isExist]) {
|
||||
[attr yy_setColor:RGB16(0xFFE309) range:[message.text rangeOfString:message.ToUserInfo.nickname]];
|
||||
[attr yy_setColor:messageNameColor range:[message.text rangeOfString:message.ToUserInfo.nickname]];
|
||||
}
|
||||
if ([message.GiftInfo.gift_name isExist]) {
|
||||
[attr yy_setColor:RGB16(0x00C8FF) range:[message.text rangeOfString:message.GiftInfo.gift_name]];
|
||||
NSArray *arr = [message.GiftInfo.gift_name componentsSeparatedByString:@","];
|
||||
for (NSString*gift_name in arr) {
|
||||
NSArray<NSValue *> *occurrences = findAllOccurrencesOfString(message.text, gift_name);
|
||||
for (NSValue *rangeValue in occurrences) {
|
||||
NSRange range = [rangeValue rangeValue];
|
||||
[attr yy_setColor:messageGiftColor range:range];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message.GiftInfos.count > 0) {
|
||||
for (QXGiftModel*gift in message.GiftInfos) {
|
||||
if ([gift.gift_name isExist]) {
|
||||
[attr yy_setColor:messageGiftColor range:[message.text rangeOfString:gift.gift_name]];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (message.ToUserInfos.count > 0) {
|
||||
for (int i = 0; i < message.ToUserInfos.count; i++) {
|
||||
QXUserHomeModel*md = message.ToUserInfos[i];
|
||||
NSArray<NSValue *> *occurrences = findAllOccurrencesOfString(message.text, md.nickname);
|
||||
for (NSValue *rangeValue in occurrences) {
|
||||
NSRange range = [rangeValue rangeValue];
|
||||
[attr yy_setColor:messageNameColor range:range];
|
||||
}
|
||||
}
|
||||
}
|
||||
self.titleLabel.attributedText = attr;
|
||||
}
|
||||
@@ -794,7 +893,9 @@ NSInteger maxMessageCount = 20;
|
||||
@implementation QXRoomChatListModel
|
||||
|
||||
+(NSDictionary<NSString *,id> *)modelContainerPropertyGenericClass{
|
||||
return @{@"GiftInfo" : @"QXGiftModel",
|
||||
return @{
|
||||
@"GiftInfo" : @"QXGiftModel",
|
||||
@"GiftInfos" : @"QXGiftModel",
|
||||
@"FromUserInfo":@"QXUserHomeModel",
|
||||
@"nextInfo":@"QXSongListModel",
|
||||
@"songInfo":@"QXSongListModel",
|
||||
|
||||
Reference in New Issue
Block a user