2009-04-17 12 views

答えて

4

テーブルビューのtableHeaderViewプロパティに固定高さの透明なビューを割り当てることができます。これは、透明なビューの高さだけテーブルの内容を押し下げます。

あなたのUITableViewControllerののviewDidLoadからこれを行うことができます。

// force the table down 70 pixels 
CGRect headerFrame = self.tableView.bounds; 
headerFrame.size.height = 70; 

UIView *header = [[UIView alloc] initWithFrame: headerFrame]; 
header.backgroundColor = [UIColor clearColor]; 

self.tableView.tableViewHeader = header; 

[header release]; 
+0

これは完全に機能しました。ありがとう。 – CodingWithoutComments

+0

'tableViewHeader'の代わりに' tableView.tableHeaderView' – vaughan

0

それを行うための最も簡単な方法は、ちょうどテーブルビューのためのフレームを変更することが考えられます。コントローラのテーブルビューへの参照は、IBOutletを使用するか、ビュー階層のビューを見つけることによって取得する必要がありますまたはインタフェースビルダーでフレームを変更できます。以下のようなコードなもので

tableView.frame = CGRectMake(0.0, 200.0, 320.0, 280.0); 

は、画面をテーブルビューを下に配置し、その高さを制限する - あなたが使用する寸法は、ビューとそのようなことにタブバーを持っていたかどうかに依存します。

インターフェイスビルドでは、テーブルビューを選択し、サイズインスペクタ(ルーラアイコン付きのインスペクタタブ)を選択し、高さとyオフセットを設定してビューを下に移動します。

+0

私はあなたがInterface Builderでグループ化されたテーブルを構築できるとは思わなかった。私が間違っている? – CodingWithoutComments

+1

IBのグループ化されたテーブルビューとプレーンなテーブルビューの違いは、スタイル設定だけです。スタイル設定をIBでグループ化するように変更した場合は、プレーンテーブルの作成方法と同様に、IBと対話できます。私の経験には、プレーンvsグループ化されたテーブルのセルに対して同じように動作しない背景色などのいくつかの制限があります。 – paulthenerd

1

UITableViewのデリゲートを見てください。
プロパティ 'heightForHeaderInSection'があります。

セクション0では、ヘッダーを大きくする(デフォルトは0)だけ、テーブルをビューの下にプッシュします。

1

をあなたがダウンしてテーブルを移動している場合、あなたは間違いなくあなたがUI要素を追加するために獲得スペースを使用したいです。

その時点で、IBでページを構築することを検討してください。テーブルビューのサイズを変更して、好きな場所に配置し、UI要素をテーブルの上に置くことができます。 UIViewControllerを使用してページを管理し、UITableViewDelegate/Datasourceプロトコルメソッドを追加すると、UITableViewをデリゲートとしてビューコントローラに戻すことができます。次に、他のUI要素を同じビューコントローラに接続することもできます。

+0

私はあなたがInterface Builderで "グループ化"テーブルを構築できるとは思わなかった。私が間違っていると私を訂正してください... – CodingWithoutComments

+0

UITableViewのテーブルスタイルを選択するドロップダウンがあります。「グループ化」を選択してください。 IBでセルやヘッダーなどを設定することはできませんが、グループ化されたテーブルビューであることが視覚的にわかります。 –

関連する問題