コンテンツが画面に収まるときに UITableView テーブルでスクロールを無効にする方法 質問する

コンテンツが画面に収まるときに UITableView テーブルでスクロールを無効にする方法 質問する

私の iPhone アプリには、いくつかの (グループ化されたスタイルの) テーブルがあります (画面の一部にのみ表示され、 で追加されていますInterface Builderが、 からサブクラス化UITableViewControllerされていません)。これらのテーブルは、80% の確率で小さく、画面に収まります。テーブルが画面に収まる場合は、スクロールを無効にして、画面を少しすっきりさせたいと思います。ただし、テーブルが画面からはみ出した場合 (後で行が追加された場合)、スクロールを再度有効にしたいと思います (そうしないと、そのコンテンツが表示されないため)。

これを実行する方法はありますか? わかりません。 実行する方法を知っているのは:

tableView.scrollEnabled = NO;

しかし、これを機能させるには、どこでテーブル オブジェクトのサイズを計算する必要があるのか​​、あるいは何かを計算する必要があるのか​​はわかりません。


アップデート

if (table.contentSize.height < table.frame.size.height) {
   table.scrollEnabled = NO;
 }
else {
   table.scrollEnabled = YES;
 }

reloadDataテーブルを呼び出した後にこのコードを実行すると、正しいサイズが計算され、機能しているように見えます。

table.frame.size.heightInterface Builderは画面に表示されるオブジェクトの実際のサイズ ( で確認できます) ですが、table.contentSize.heightはヘッダー、フッター、および各セルの高さを合計した高さです。

ベストアンサー1

設定したいと思います

tableView.alwaysBounceVertical = NO;

おすすめ記事