2011-12-25 122 views
-2

我需要將一個按鈕或標籤添加到UIView並將其添加到我的UIViewController。我做了以下,但它只是使程序崩潰。將UIView添加到UIViewController

UIView *myview = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 0, 300)] ; 
[myview addSubview:myButton]; 

[self.view addSubview:myView]; 

代碼崩潰。這是爲什麼?

+0

「的代碼崩潰。」沒有幫助。請編輯問題並告訴我們你的應用程序崩潰的原因(使用斷點並遍歷代碼)以及實際的錯誤消息是什麼。 – 2011-12-25 16:10:06

+0

崩潰應該顯示一條消息。有幾個可能的原因 – 2011-12-25 16:10:24

+0

根據以前的評論,請添加一個崩潰日誌,以便我們可以看到它出錯的地方。 – 2011-12-25 16:45:34

回答

0

嘗試更新用下面的視圖:

[MyView的setNeedsDisplay];

並移除addSubView第二呼叫(這可能是導致崩潰):

[self.view addSubview:MyView的];

2

您將myview的寬度設置爲0. 您確定創建了「myButton」? 您創建了myview,但添加了我的* V *查看作爲子視圖。有沒有警告?

+0

我將寬度添加到0是一個錯誤。它應該是100.我需要'myView'佔據整個屏幕。所以我應該如何添加它(如果不使用'subView')? – sharon 2011-12-25 17:00:11

+0

您可以將myView的框架設置爲您要放置myview的視圖框架。 – user1111278 2011-12-25 17:33:44

1

你需要採取的第一個步驟是:

  • 請確保您有分配&初始化的UIButton對象與「initWithFrame」的方法。
  • 在「initWithframe」方法中爲您的UIView提供一個寬度,以便它可以被看到。
  • 現在使用你的[self.view addSubview:myView];

請讓我知道它是否有用。

1

用途:

//Assuming that myview should have the size of the main view: 
UIView *myview = [[UIView alloc] initWithFrame:self.view.bounds]; 
[myview addSubview:myButton]; //Whatever ... 

[self.view addSubview:myview]; //There was a typo in this line 
1

如果此代碼塊在視圖控制器的初始化或的loadView,這將崩潰。 確保你已經創建添加視圖之前,在這種情況下視圖控制器爲了self.view

UIView *aView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
self.view = aView; 
[aView release]; 

myButton = [[UIButton alloc] init.... 
..... 

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 0, 300)] ; 
[myView addSubview:myButton]; 
[self.view addSubview:myView]; 
相關問題