3

我在我的应用程序中使用 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 编写的吗?

4

3 回答 3

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;
}
于 2016-11-21T10:59:48.823 回答
0

如果要添加时间标签,则必须更改 JSQMessagesCollectionViewCellOutgoing 的 xib 文件以及传入气泡。

于 2017-07-09T10:02:54.930 回答
-1

我发现最好的方法是子类化JSQMessagesCollectionViewCellIncomingJSQMessagesCollectionViewCellOutgoing. 这非常重要,因为库需要其中一种类型,如果JSQMessagesCollectionViewCell直接从子类化就会遇到麻烦。顺便说一句,我复制了现有的JSQMessagesCollectionViewCellOutgoing.xibJSQMessagesCollectionViewCellIncoming.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

于 2016-11-21T08:46:17.520 回答