このサンプル ディクショナリを入力する UITableView があります。
var WholeDict = [
"Animals" : ["Cat","Dog"],
"Fruits" : ["Apple","Orange"]
]
内容が小さすぎます。したがって、UITableView のコンテンツの下に表示される不要なセルを回避できるように、グループ化された UITableView スタイルを選択しています。しかし、問題は、グループ化されたスタイルを選択すると、スクロール時に各セクションの下のセルがヘッダーの下に移動しないことです。スクロールは最初にヘッダーを移動します。 グループ化されたスタイル: ヘッダーに沿ってスクロールするセル& プレーン スタイル: ヘッダーの下にスライドするセル。これは私がコードでやっていることです
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let allkeys = Array(WholeDict.keys)
return allkeys[section]
}
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.textLabel?.textAlignment = .Center
}
}
では、テーブルビューの下の余分なスペースを回避し、同時にヘッダーの下の行のスライドを使用するにはどうすればよいですか?
EDIT 私はウォルターの答えを使用しています。それは私のために働いています。しかし、その後、別の問題が発生しました。最後の行を超えてスクロールすると、追加したフッターだけが画面に表示されます。そこで、別の回避策を追加しました。
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let visiblerows = MyTable.indexPathsForVisibleRows
if visiblerows?.count == 0 {
let ScrollToIndexPath = NSIndexPath(forRow: 0, inSection: WholeDict.count - 1)
MyTable.scrollToRowAtIndexPath(ScrollToIndexPath, atScrollPosition: UITableViewScrollPosition.Top, animated: true)
}
}