2011-06-19 37 views
6
// Create and add a sub view 
CGRect viewRect = CGRectMake(0, 0, 200, 200); 
UIView *a_sub_view = [[UIView alloc] initWithFrame : viewRect]; 

[window addSubview : a_sub_view]; 

上記の3行のコードを追加した後、xcodeはエラーや警告を出力しません。しかし、サブビューは全く表示されていません。サンプルプログラムは以前と同じように動作しているようです。誰かが知っていることが助けてくれることを願っています。addSubviewが機能しない

+2

は、実際に正確にあなたのコードです?もしそうなら、 'a_sub_view'は普通のUIViewです。実際には何も描画しません。カスタムサブクラスまたは 'UIButton'のような他の組み込みサブクラスをインスタンス化する必要があります。 –

+0

どのようなオブジェクトが 'window'ですか? – 0x90

+0

ウィンドウはUIWindowです。その前に、 "addSubview"をウィンドウの基本UIViewだけでなく "表示しない"ようにしました。 – Stanley

答えて

15

私はそれは便利なビューがあるとの境界どこので、私は知っている背景色を設定するために見つけます。

a_sub_view.backgroundColor = [UIColor redColor]; 

この例では、何も表示されないように空のビューを作成しています。

+1

ありがとうございました:)それは良いアイデアです –

3

ウィンドウでは、viewcontrollersビューを追加する必要があります。

次に、現在のビューにサブビューを追加できます。あなたの例を使用しているので、

[self.view addSubview:a_sub_view]; 
-1
[self.view addSubView: a_sub_view]; 
3

私は窓を「見つける」ためにこれを使用しています:

UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; 
[window addSubview:myView]; 

また、これは私のために働いたが、それは少し醜いです:

[self.navigationController.tabBarController.view addSubview:myView]; 

秒1を説明するために、コントローラーを「トップ」ビューに「フォロー」する必要がありました。 (私のアプリケーションは、現在のタブ内のナビゲーションコントローラとタブバーがあります。)

2

あなたは上記のiOS 5 &で作業している場合、あなたは以下のようにしなければならない。

[self.window.rootViewController.view addSubView:viewObject]; 
+0

正解....残りはすべてのシナリオで動作しません。 – iNeo