だけiPhone用iOSの10.1をターゲットにXcodeの8.3.2を使用して、私のスウィフト3.1のコードのために働い以下。
私はOPと同じ問題がありました。私のアプリにはメッセージング機能が含まれていました。私はメッセージビューがスタックにプッシュされたときに最後の投稿が見えるようにしたかった。私のテーブルビューのセルの高さは、メッセージの内容によって可変です。解決策のどれも私の満足のために働かなかった(最後のテーブルビュー行は見えないか、部分的にしか見えなかった)。しかし、ここで私の仕事です:
Interface Builderの(IB)で
で、最も重要なのは、私はこのコードのビットを書いた:
extension UITableView {
func scrollToBottom() {
let rows = self.numberOfRows(inSection: 0)
let indexPath = IndexPath(row: rows - 1, section: 0)
self.scrollToRow(at: indexPath, at: .top, animated: true)
}
}
お知らせat: .top
—これは私の問題を解決するものです。 UITableViewScrollPosition
パラメータの.bottom
の値を渡すだけで機能しませんでした。 .middle
を渡しても—を処理しましたが、.bottom
を処理しませんでした。
だから、いつでも私のデータセットを更新する必要があるか、または新しいメッセージは私が単にat: .top
にat: .bottom
パラメータを変更することにより、この「方法」の結果をテストした
func getTableViewData(){
// Get your data here any way you usually do..
// call to reload
myTableView.reloadData()
// call the scroll function
myTableView.scrollToBottom()
}
を呼び出して到着。私がat: .top
に変更するたびに、最後のテーブル行が完全に表示され、テーブルが一番下までスクロールされました。
'[self.tableView setContentOffset:...]'は機能しますか? –
残念ながら... –
、tableView.scrollToRowAtIndexPath(NSIndexPath(forRow:arrayData.count、inSection:0)、atScrollPosition:UITableViewScrollPosition.Bottom、animated:true)を試してください –