2

ナビゲーション コントローラー フローの一部としてストーリーボードを使用してテーブル ビューを作成しています。すべてのセルを 1 ページに表示できる限り、すべてがうまく機能します。問題は、画面に収まるセルがさらにある場合、一部のセルが画面の下部に隠れてしまうことです。バウンス効果を利用してさらに下にスクロールすると、それらを見ることができます。画面を離すとすぐに、一番下のセルが画面の下に跳ね返ります。

問題は、テーブル ビューのフレームの寸法にあると思います。ストーリーボードで変更する方法が見つからず、寸法を動的に変更しようとしました:

self.view.frame = CGRectMake (0.0, 20.0, 320.0, 230.0);

残念ながら、これは viewWillAppear にも viewDidLoad にも影響しません。上記の 230 ポイントの高さの設定では、リストは簡単に表示されるはずです。テーブルには 480 - 44 (ナビゲーション バー) = 436 ポイントが残っています。

私は何を間違っていますか?フレームの高さを間違った場所 (viewWillAppear/viewDidLoad) に設定していませんか? ビューの高さがグレー表示されているときにインターフェイス ビルダーで高さを指定する方法はありますか?

解決策:(以下のコメントからコピー)

フィールドが表示されない理由であるオートサイズの問題をさらに掘り下げると、iOS 6 の機能である「Autolayet を使用する」が有効になっていました。その場合、自動サイズ設定ボックスは IB に表示されません。「Use Autolayet」を無効にすると実際に問題が解決し、スクロールが画面の下部に配置されるようになりました。

4

3 に答える 3

5

UITableView に柔軟な高さを使用します。

  1. UITableView を含むストーリーボード / nib ファイルを開きます。
  2. テーブルを選択します。
  3. 「ユーティリティ」から「サイズインスペクタ」タブを選択します。
  4. 「自動サイズ変更」ボックスで、「垂直サイズの再配置」を選択します。

親ビューの高さの変化に応じてテーブルのサイズが変更されます。

編集:自動レイアウトがオンの場合、自動サイズ変更ボックスとプロパティは表示されません。

于 2013-06-19T06:20:12.310 に答える
0

現在のビュー レイアウトについてはわかりませんが、ビュー コントローラー内に UITableview を実装しようとしている場合は、別の方法として、テーブルビューがビューに配置されるコンテナーを追加します。 tableview を作成し、コンテナを、新しく追加された tableview の UITableview Controller クラスに接続します。正常に動作するはずです。

于 2013-06-20T05:38:25.300 に答える
0

テーブルビューの高さが画面の高さよりも大きい: 高さを画面の高さから上部のラベルを引いた値に設定します

テスト用に100に設定して、私の意味を確認してください。

それをviewdidloadして、後で変更していないことを確認してください

于 2013-06-18T23:10:56.267 に答える