1

私は初心者のiPhoneプロジェクトを進めています。私は TableView を持っています。これは、たくさんのエントリがあり、下部に小さな UiView がある単なるリストボックスです。写真を見てください。

問題は、UiView が基本的にリストボックスの一部になり、TableView の最後の項目までスクロールしたときにのみ表示されることです。

UiView を下に固定して動かないようにしたいと思います。私は Interface Builder を隅々まで調べましたが、何も見つかりませんでした (ただし、私は iPhone 開発者の初心者です)。どうすればこのようなトリックを達成できますか?

代替テキスト http://www.sqleffects.com/mystuff/ibissue.jpg

4

4 に答える 4

3

わかりました、必要なのは UIView です。

  1. TableViewController として機能する UIView。したがって、UITableViewDelegate および UITableViewDataSource プロトコルを実装する必要があります (ただし、UITableViewController から直接派生させてはなりません。これにより、UITableView が自動的に画面全体のサイズを占有するためです (ツールバー、ナビゲーションバー、および/を除く)。またはタブバー))
  2. 一番下に配置したい別のUIView

そうすることで、IB で UITableView を作成し (UITableViewController ではありません!)、それを UIView の UITableView プロパティ (1. で述べたもの) に接続できます。

このメソッドを使用すると、UITableView に固定サイズを与えることができます (これは、2 番目の UIView の下部にスペースを確保するために必要です)。

于 2009-09-08T07:16:25.427 に答える
2

gabtubの答えを構築するために、テーブルビューとボトムビューを含むUIViewは、UITableViewDelegateメソッドとUITableViewDataSourceメソッドを実装する必要はありません。

ビューコントローラを使用して構築しているように聞こえるので、メインのビューコントローラを(UITableViewControllerを使用する代わりに)UIViewControllerのサブクラスにします。次に、UITableViewとUIViewをUIViewControllerのビューインスタンスに追加できます。

次に、UIViewControllerサブクラスにUITableViewDelegateプロトコルとUITableViewDataSourceプロトコルを実装させます-古いUITableViewControllerサブクラスに(コード的に)似たものになりますが、そのビュープロパティはUITableViewインスタンスではなく基になるUIViewになります(デバッガーをざっと見てみると、[UITableViewControllerビュー]と[UITableViewController tableView]が同じオブジェクトを返すことがわかります)

gabtubの提案に対する利点の1つは、おそらくすでに1回限りのUIViewControllerサブクラスを持っている(または以前は1回限りのUITableViewControllerサブクラスを持っていた)ため、1回限りのUIViewサブクラスを作成する手間が省けることです。

于 2009-09-11T04:24:29.317 に答える
1

問題はおそらく、現在、UIViewがセクションフッタービューであり、したがってテーブルビュー内に含まれていることです。

TableViewからUIViewを削除し、TableViewをスケーリングしてUIViewともう少しスペースを確保し、UIViewを必要な場所に配置すると、おそらくTableViewのスーパービューに追加されます。次に、TableViewのサイズを正しいサイズに変更できます。

于 2009-09-08T06:55:13.533 に答える
0

要するに、Navigation テンプレートに基づいてプロジェクトを作成する場合、UiTableView の期間のサイズを変更することはできません。

したがって、私がやりたいことを行うには、基本的にゼロから始めて、View または Window ベースのテンプレートを選択し、その上に UiTableView を手動でドロップする必要があります。

于 2009-09-09T21:42:52.470 に答える