2016-06-17 4 views
1

タイムスタンプロジックを変更して、以下のスクリーンショットに示すように時間を繰り返さないようにするにはどうすればよいですか?ここですぐにJSQmessageVCタイムスタンプロジックを変更する

私のコードは..です

オーバーライド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 
} 

enter image description here

答えて

1

我々は以前のメッセージを比較すると、あまりにも日付現在のメッセージには、時間が変化した場合にのみ、我々は表示することができます日付。あなたがしたい場合は、すべての第3のメッセージを残したり、それが

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]の範囲外となります。しかしそれ以外にもあなたの質問を解決するはずです。幸運

関連する問題