私の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.height
Interface Builder
画面に表示されるオブジェクトの実際のサイズ(これはで確認できます)ですが、table.contentSize.height
は高さです:ヘッダー、フッター、および追加されたすべてのセルの高さ。