2012-02-04 12 views
2

OKこのシナリオを説明しましょう。メインウィンドウに背景画像を持つアプリを開発しています。私はまた、画面の上部に座っていないナビゲーションコントローラを持っている代わりに、その100pxダウン。ナビゲーションコントローラは半透明で、バックグラウンドを見ることができます。スーパービューの特定の位置にUITableViewControllerを追加する

ここに問題があります。アプリケーションのある時点で、ユーザーはボタンをクリックし、pushViewControllerを使用してナビゲーションコントローラに追加するUITableViewControllerクラスを持っています。この問題は、テーブルビューの上部がナビゲーションコントローラのすぐ下に表示されている間に、ナビゲーションコントローラの後ろに白い背景が置かれ、半透明のエフェクトが取り除かれていることです。

私は以下を試しました: - 私のtableviewcontrollerのビューのフレームプロパティを設定します。 ie。

tableviewcontroller1.view.frame= CGRectMake(0,120,320,300); 

(私はy位置をいじってきたが、それは関係なく、私が何も違いはありません。)

私は多分、私がのUIViewControllerを作成して、透明な背景を持つビューを作成すると考えていた、とtableviewcontrollerをサブビューとして追加し、そうすることで、私がtableviewcontrollerに設定したフレーム境界が有効になることを期待していました。私は、次のことを試してみました:

[parentview.view addSubView: tableviewcontroller1]; // runtime error 
[parentview.view addSubView: tableviewcontroller1.view]; // runtime error 
[parentview.view addSubView: tableviewcontroller.tableView]; // runtime error 

私は本当に私のtableviewcontroller.viewのフレームプロパティを設定する理由を理解するのに苦労しています何の効果もありません、私はすべての私のスーパービューをチェックしているし、それらのどれもが「サブビューのサイズを変更する」性質を持っていません刻まれた。

私は本当にここで立ち往生しています。私は多くの検索をしましたが、答えは見つけられません。

多くのおかげであなたはナビゲーションコントローラは、おそらくUINavigationBarで呼び出す何 マイケル

+0

実行時エラーはありますか? – Rayfleck

+0

テーブルビューを白い背景または透明な背景にしますか? –

答えて

2

。ナビゲーションコントローラは様々なビューコントローラを制御し、ナビゲーションバーはナビゲーションコントローラに属するUIインタフェースである。

問題を解決するには、テーブルビューに透明な背景を与えます。

// in NewTableViewController.m, viewDidLoad 
self.tableView.backgroundColor = [UIColor clearColor]; 

あなたはテーブルビューコントローラ上および下のいくつかのスペースを持つビューを必要とするいくつかの理由で、あなたはビューコントローラを作成し、自分自身を表示テーブルを挿入する必要がある場合。標準UITableViewControllerUIViewControllerサブクラス(ないUITableViewController)を作成します

  1. ...テーブルビューコントローラのメインviewとして設定され、したがって、サイズを変更することはできませんがあります。
  2. コントローラは<UITableViewDelegate, UITableViewDatasource>
  3. に準拠して作成しますtableViewと呼ばれる@propertyを作成します。
  4. 初期化するときは、テーブルビューのdelegatedatasourceとしてselfを設定します。
  5. tableViewの上に適切なサイズの透明なビューを作成します。このビューとテーブルビューは両方とも、ビューコントローラのメインviewのサブビューです。
  6. テーブルビューに必要なデータソースとデリゲートメソッドを手作業で実装します。
+0

Mundiの説明をお寄せいただきありがとうございます。私は、既存のUITableViewControllerサブクラスを使用してそれを実行できることを期待していました。私は基本的にあなたが示唆したものを実装しましたが、代わりにIBを使用し、ちょうどUITableViewアイテムを挿入しました。 – MichaelGois

関連する問題