如何在 JSQMessagesViewController 中显示消息日期
How to show message date in JSQMessagesViewController
我正在尝试制作一个聊天应用程序,并且我正在使用 JSQMessagesViewController 库。
我的聊天视图显示所有消息及其日期和时间,但我在这个库中遇到了一些小问题。
我的问题是我只想显示消息日期一次。
认为:
昨天日期包含 10 条消息
今天日期包含 15 条消息
我只想显示这些消息的单个日期,而不是每条消息的重复日期
使用此方法来执行此操作。
func collectionView(collectionView: JSQMessagesCollectionView, attributedTextForCellTopLabelAtIndexPath indexPath: NSIndexPath) -> NSAttributedString? {
如果日期与之前的消息日期不同,您必须检查消息日期 return 日期格式,否则 return 无。
那么您需要确定邮件是否是当天的第一封邮件。然后 return 所有其他人都为零,直到新的一天。
我创建了一个函数来确定我的消息是否是那个人最先发送的。看起来像这样
func firstMessageOfTheDay(indexOfMessage: NSIndexPath) -> Bool {
let messageDate = messages[indexOfMessage.item].date
guard let previouseMessageDate = messages[indexOfMessage.item - 1].date else {
return true // because there is no previous message so we need to show the date
}
let day = Calendar.current.component(.day, from: messageDate)
let previouseDay = Calendar.current.component(.day, from: previouseMessageDate)
if day == previouseDay {
return false
} else {
return true
}
}
然后在适当的函数中调用它。如果您有任何其他问题,希望对您有所帮助。
我正在尝试制作一个聊天应用程序,并且我正在使用 JSQMessagesViewController 库。 我的聊天视图显示所有消息及其日期和时间,但我在这个库中遇到了一些小问题。 我的问题是我只想显示消息日期一次。 认为: 昨天日期包含 10 条消息 今天日期包含 15 条消息
我只想显示这些消息的单个日期,而不是每条消息的重复日期
使用此方法来执行此操作。
func collectionView(collectionView: JSQMessagesCollectionView, attributedTextForCellTopLabelAtIndexPath indexPath: NSIndexPath) -> NSAttributedString? {
如果日期与之前的消息日期不同,您必须检查消息日期 return 日期格式,否则 return 无。
那么您需要确定邮件是否是当天的第一封邮件。然后 return 所有其他人都为零,直到新的一天。
我创建了一个函数来确定我的消息是否是那个人最先发送的。看起来像这样
func firstMessageOfTheDay(indexOfMessage: NSIndexPath) -> Bool {
let messageDate = messages[indexOfMessage.item].date
guard let previouseMessageDate = messages[indexOfMessage.item - 1].date else {
return true // because there is no previous message so we need to show the date
}
let day = Calendar.current.component(.day, from: messageDate)
let previouseDay = Calendar.current.component(.day, from: previouseMessageDate)
if day == previouseDay {
return false
} else {
return true
}
}
然后在适当的函数中调用它。如果您有任何其他问题,希望对您有所帮助。