2011-06-19 81 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]; 

要解釋的第二個,我不得不將控制器「追蹤」回到「頂部」視圖。 (我的應用程序與當前標籤內導航控制器,一個標籤欄)

2

如果您正在使用的iOS 5 &以上工作,你有如下事情:

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

正確的答案....其餘的人不能在所有情況下工作。 – iNeo