如何更改时间戳逻辑以避免重复次数,如下面的屏幕截图所示?
这是我的代码..
覆盖func collectionView(collectionView:JSQMessagesCollectionView!,attributedTextForCellTopLabelAtIndexPath indexPath:NSIndexPath!) - > NSAttributedString! {
if indexPath.item % 3 == 0 {
let message = messages[indexPath.item]
return JSQMessagesTimestampFormatter.sharedFormatter().attributedTimestampForDate(message.date)
}
return nil
}
override func collectionView(collectionView: JSQMessagesCollectionView!, layout collectionViewLayout: JSQMessagesCollectionViewFlowLayout!, heightForCellTopLabelAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
if indexPath.item % 3 == 0 {
return kJSQMessagesCollectionViewCellLabelHeightDefault
}
return 0.0
}
答案 0 :(得分:1)
如果我们比较之前的消息日期也是当前消息日期,我们只能在时间变化时显示。如果您想要或删除它,您可以保留每三条消息
if indexPath.item % 3 == 0 { //optional
let previousMessage = messages[indexPath.item - 1]
let message = messages[indexPath.item]
if message.date == previousMessage {
return JSQMessagesTimestampFormatter.sharedFormatter().attributedTimestampForDate(message.date)
else {
return nil
}
}
return nil
您可能需要确保它不是第一条消息,因为消息[indexPath.item - 1]将超出范围。但除此之外它应该解决你的问题。祝你好运