Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将UIView添加到UIViewController_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 将UIView添加到UIViewController

Iphone 将UIView添加到UIViewController,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我需要将按钮或标签添加到UIView并将其添加到我的UIViewController。我做了以下操作,但它只是使程序崩溃 UIView *myview = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 0, 300)] ; [myview addSubview:myButton]; [self.view addSubview:myView]; 代码崩溃了。为什么会这样?尝试使用以下内容更新视图: [myview设置需要显示] 并删除对a

我需要将按钮或标签添加到
UIView
并将其添加到我的
UIViewController
。我做了以下操作,但它只是使程序崩溃

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

[self.view addSubview:myView];

代码崩溃了。为什么会这样?

尝试使用以下内容更新视图:

[myview设置需要显示]

并删除对addSubView的第二个调用(这可能导致崩溃):


[self.view addSubview:myView]

将myview的宽度设置为0。 你确定你创造了“我的按钮”?
创建myview,但将my*V*视图添加为子视图。有任何警告吗?

您需要采取的第一步是:

  • 确保已使用“initWithFrame”方法分配并初始化UIButton对象
  • 在“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

如果此代码块位于viewcontroller的init或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];

“代码崩溃”没有帮助。请编辑问题,并告诉我们您的应用程序在哪一行崩溃(使用断点并逐步完成代码)以及实际错误消息是什么。崩溃应显示一条消息。有几个可能的原因在前面的评论中,请添加一个崩溃日志,这样我们就可以看到哪里出了问题。我将宽度添加到0是一个错误。应该是100。我需要
myView
占据整个屏幕。那么我应该如何添加它(如果不使用
子视图
)?您可以将myView的框架设置为要将myView放入其中的视图框架。[myView setFrame:biggerView.frame];