###前提・実現したいこと
TableViewの下が最新情報を表示するメッセンジャー機能の実装です。
(例:Line、Facebook Messenger)
画面遷移後に一番下に最新のメッセージを表示したい。
無理やり実現しているがより良い実装方法を知りたい。
皆さんの知見を是非お貸しください。
###発生している問題・エラーメッセージ
配列情報を取得後に
tableView.scrollToRowAtIndexPath(lastIndexPath atScrollPosition: .Bottom, animated: animted)
(lastIndexPathは最後のSectionの最後のCell、つまり最新メッセージを示すNSIndexPathです)
を実行しても、一番下のセルまで表示されない。
###現在の実装
サーバから、JSON配列でメッセージ情報を受信時間による降順で受信しパース。(最新が先頭)
reverseをかけて逆順に並び替えTableViewに表示しているが、
一番下まで綺麗に表示されないため以下の処理を実装。
tableView.scrollToRowAtIndexPath(lastIndexPath atScrollPosition: .Bottom, animated: animted)をコール
↓(以下ループ)
scrollViewDidEndScrollingAnimationでスクロール座標を取得
↓
一番下のセルまで表示しているか →[true] 終了
↓
[false]
ContentOffsetを計算しtableView.setContentOffset(ContentOffset, animated: true)を実行
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode 7.0.1(今後Xcode 7.1以降にアップ予定)
StoryboardとAutoLayoutを使用
Swift 2.0
現在はiOS7以上の対応をしていますが、iOS8以上のみまたはiOS9のみの情報でも構いません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/18 06:19
2015/11/18 06:24