将UIView添加到UIViewController
我需要将一个按钮或标签添加到UIView
并将其添加到我的UIViewController
。我做了以下,但它只是使程序崩溃。将UIView添加到UIViewController
UIView *myview = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 0, 300)] ;
[myview addSubview:myButton];
[self.view addSubview:myView];
代码崩溃。这是为什么?
尝试更新用下面的视图:
[MyView的setNeedsDisplay];
并移除addSubView第二呼叫(这可能是导致崩溃):
[self.view addSubview:MyView的];
您将myview的宽度设置为0. 您确定创建了“myButton”? 您创建了myview,但添加了我的* V *查看作为子视图。有没有警告?
我将宽度添加到0是一个错误。它应该是100.我需要'myView'占据整个屏幕。所以我应该如何添加它(如果不使用'subView')? – sharon 2011-12-25 17:00:11
您可以将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];
“的代码崩溃。”没有帮助。请编辑问题并告诉我们你的应用程序崩溃的原因(使用断点并遍历代码)以及实际的错误消息是什么。 – 2011-12-25 16:10:06
崩溃应该显示一条消息。有几个可能的原因 – 2011-12-25 16:10:24
根据以前的评论,请添加一个崩溃日志,以便我们可以看到它出错的地方。 – 2011-12-25 16:45:34