我在我的应用程序中使用JSQMessageController,现在我想在我的气泡中添加时间标签。
我在我的目录中搜索,但没有找到图像资源文件夹。但是当我在这里输入图像/资产名称时:
我正在尝试这个:
override func collectionView(collectionView: JSQMessagesCollectionView!, attributedTextForCellBottomLabelAtIndexPath indexPath: NSIndexPath!) -> NSAttributedString! {
let message: JSQMessage = self.messages[indexPath.item] as! JSQMessage
return JSQMessagesTimestampFormatter.sharedFormatter().attributedTimestampForDate(message.date)
}
但这不是我想要的。我想将此标签添加到消息泡泡中。
任何建议,甚至用Objective-C编写?
答案 0 :(得分:1)
请试试这个。它对我有用。
- (UICollectionViewCell *)collectionView:(JSQMessagesCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
JSQMessagesCollectionViewCell *cell = (JSQMessagesCollectionViewCell *)[super collectionView:collectionView cellForItemAtIndexPath:indexPath];
JSQMessage *message = [jsqmessages objectAtIndex:indexPath.item];
//cell.messageBubbleTopLabel.text = message.senderDisplayName;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"MMM dd, yyyy"];
NSString *strDate = [dateFormat stringFromDate:message.date];
cell.cellTopLabel.text = strDate;
return cell;
}
答案 1 :(得分:0)
如果要添加时间标签,则必须更改JSQMessagesCollectionViewCellOutgoing的xib文件以及Incoming bubbles。
答案 2 :(得分:-1)
我发现的最佳方法是继承JSQMessagesCollectionViewCellIncoming
和JSQMessagesCollectionViewCellOutgoing
。这非常重要,因为库期望其中一种类型,如果直接从JSQMessagesCollectionViewCell
继承,则会遇到麻烦。顺便说一句,我复制了现有的JSQMessagesCollectionViewCellOutgoing.xib
,JSQMessagesCollectionViewCellIncoming.xib
并更改/重命名了所有内容,这使我更容易开始自定义单元格。
然后在你的JSQMessagesViewController子类中,在viewDidLoad()中注册单元标识符,如下所示:
self.outgoingCellIdentifier = [CustomCollectionViewCellOutgoing cellReuseIdentifier];
self.outgoingMediaCellIdentifier = [CustomCollectionViewCellOutgoing mediaCellReuseIdentifier];
[self.collectionView registerNib:[CustomCollectionViewCellOutgoing nib] forCellWithReuseIdentifier:self.outgoingCellIdentifier];
[self.collectionView registerNib:[CustomCollectionViewCellOutgoing nib] forCellWithReuseIdentifier:self.outgoingMediaCellIdentifier];
self.incomingCellIdentifier = [CustomCollectionViewCellIncoming cellReuseIdentifier];
self.incomingMediaCellIdentifier = [CustomCollectionViewCellIncoming mediaCellReuseIdentifier];
[self.collectionView registerNib:[CustomCollectionViewCellIncoming nib] forCellWithReuseIdentifier:self.incomingCellIdentifier];
然后在collectionView:cellForItemAtIndexPath中:您可以访问自定义单元格:
[self.collectionView registerNib:[CustomCollectionViewCellIncoming nib] forCellWithReuseIdentifier:self.incomingMediaCellIdentifier];
回答源链接:https://github.com/jessesquires/JSQMessagesViewController/issues/1233