我正在使用Chatviewcontroller
中的Quickblox
来显示聊天详细信息。如果邮件已读,我想将邮件标记为已读。
我看到QMChatService.m类中有一个可用的方法
- (void)chatDidReadMessageWithID:(NSString *)messageID
dialogID:(NSString *)dialogID
readerID:(NSUInteger)readerID{
------------
if ([self.multicastDelegate respondsToSelector:@selector(chatService:didUpdateMessage:forDialogID:)]) {
[self.multicastDelegate chatService:self didUpdateMessage:message forDialogID:dialogID];
}
}
我在这里看到chatService:didUpdateMessage:
的方法也被称为另一种情况,因此无法识别如何标记消息。
答案 0 :(得分:0)
我已经解决了 QBChatMessage具有三个属性readIDs(阅读消息的用户的数组),deliveredIDs(发送消息的用户的数组),收件人ID。
下面是ChatViewController.m中的完整代码
-(无效)collectionView:(QMChatCollectionView *)collectionView configureCell:(UICollectionViewCell *)单元格 forIndexPath:(NSIndexPath *)indexPath {
QBChatMessage * message = [self.chatDataSource messageForIndexPath:indexPath];
if (message.senderID == [QBSession currentSession].currentUser.ID){
NSString *imageName = @"sent.png";
if((self.dialog.type == QBChatDialogTypePrivate) && [message.readIDs containsObject:@(message.recipientID)]) {
imageName = @"read.png";
}
else if((self.dialog.type == QBChatDialogTypePrivate) && [message.deliveredIDs containsObject:@(message.recipientID)]) {
imageName = @"received.png";
}
[chatCell markImageView].image = [UIImage imageNamed:imageName];
}
}
这里markImageView是该单元格采用的UIImagview属性。