将UIView添加到UIViewController

问题描述:

我需要将一个按钮或标签添加到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

尝试更新用下面的视图:

[MyView的setNeedsDisplay];

并移除addSubView第二呼叫(这可能是导致崩溃):

[self.view addSubview:MyView的];

您将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

你需要采取的第一个步骤是:

  • 请确保您有分配&初始化的UIButton对象与“initWithFrame”的方法。
  • 在“initWithframe”方法中为您的UIView提供一个宽度,以便它可以被看到。
  • 现在使用你的[self.view addSubview:myView];

请让我知道它是否有用。

用途:

//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 

如果此代码块在视图控制器的初始化或的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];