繁体   English   中英

添加UIView subView不起作用

[英]Adding UIView subView not working

我有一个UIViewControllerMyClass ,最初没有XIB,并且已通过编程进行了初始化。 现在,我不想从XIB加载它,但是我想制作一个小的50x50 UIView(设置覆盖视图),我想将其添加为MyClass ,所以我不是以编程方式声明新的设置覆盖视图,而是以为我会创建一个XIB文件,将文件的所有者设置为MyClass,在MyClass.h声明一个IBOutlet UIView *settingsOverlay ,并将其链接到XIB中。

然后在viewDidLoad方法中,我执行[self.view addSubview:settingsOverlay] ,但是由于某些令人讨厌的原因,它不起作用。 它只是没有出现。 我尝试以编程方式创建一个简单的UIImageView并将其添加到subView中,并且效果很好,但是通过XIB完成后,它不起作用。 谁能指出可能是错的吗? 请让我知道我可能需要包括哪些其他细节。

如果尝试使用xib添加视图,则需要使用loadNibNamed方法。

[[NSBundle mainBundle] loadNibNamed:@"settingsOverlay" owner:self options:nil];

您可以参考开发人员链接以获取更多信息-http: //developer.apple.com/library/IOs/#documentation/UIKit/Reference/NSBundle_UIKitAdditions/Introduction/Introduction.html

为设置覆盖视图创建XIB并将其所有者设置为MyClass不会隐式导致手动实例化MyClass导致加载XIB。 您将必须在MyClass viewDidLoad中手动加载设置覆盖视图XIB并将其添加为子视图。 加载它并作为所有者传递所有者将导致它绑定到您创建的IBOutlet,但是您仍然必须将其添加为子视图。

viewDidLoad中的代码如下所示:

[[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self];
[self.view addSubview:self.overlayView];

您需要在设置settingsOverlay之前加载MyClass xib。 尝试在addSubview调用之前添加此行。

[[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:self options:nil];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM