動的なTableViewを作成していて、ストーリーボードでrowheightが44のセルを設定しています。したがって、テーブルビューの高さは、データベースが結果に従って返す行の数に基づいています。同時に、私はIBOutletのビューにtableViewの下部制約を接続しています。したがって、テーブルビューの高さはキーボードの上に重なることはなく、設定によってはある程度の距離が保たれます。私の質問は、どのようにiOS 10以下のsizeToFits()でtableView.frame.size.heightを更新できますか?UiTableviewは、iOS 10ではsizetofitを更新しませんが、iOS 11では動作しません。
は、ここでテーブルビューのsizetofitは、()より大きいに小さいから増加したことがないとき、tableView and contentView size for iOS 10
別の画像をより鮮明な画像を持っているいくつかのログです。 Another logs、データベースが0の結果を返す場合は完全に終了し、次にcontentSizeが0.0になると、いくつかのテキストを削除しようとすると、ContentSizeは44に戻ります。 contentSizeに基づいてサイズを適合させます。しかし、この場合、それはまだ0.0に固執し、決して更新しません。
iOS 11、tableView and contentView size for iOS 11の画像では、632のテーブルビューの高さは正しいです。なぜなら、ユーザーがtableView内でスクロールできるようにキーボードに干渉しないように自動レイアウトを設定したからです。
よりよく理解するためにいくつかのコード、
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// configuration for tableViewCell.
tableView.sizeToFit() // WORKs for iOS 11 but doesn't update for iOS10
if UIDevice.current.userInterfaceIdiom == .pad {
tableView.setNeedsLayout()
tableView.layoutIfNeeded()
cell.backgroundColor = UIColor.darkGray
}
return cell
}