如何以编程方式嵌入碎粒?(How to embed nibs programmatically?)

2019-09-20 22:18发布

我有一个在它的UIScrollView的一个UIViewController。

然后,我创建了一些特性,我想直到我的数据结束了在这个UIScrollView中以编程方式添加一个新的UIView子类。

事情应该是这样的画面是:

我已阅读,这是否通过创建一个视图和它的类型设置为自定义视图子类等题材,但我想这样做编程和它不工作。

我会怎么做呢?

Answer 1:

从你的形象,它看起来像你正在寻找从笔尖加载的观点,并将其添加为您的UIScrollView的子视图。 要做到这一点看看在UINib文档 。

你想创建笔尖,并设置它的主要观点是你的UIView子类的实例,然后加载在笔尖viewDidLoad你的viewController,并添加笔尖的意见,你的滚动型subivews(这我假设是的一个子视图您的viewController的观点)。

您可以发起与笔尖instantiateWithOwner:options:

此方法解档的每个对象,进行初始化,设置其属性以它们的配置的值,并重新建立到其他对象的任何连接

要获得从笔尖的观点,你做同样的事情到数组:

UINib *myNib = [UINib nibWithNibName:@"myNib" bundle:[NSBundle mainBundle]];
NSArray *viewsFromNib = [myNib instantiateWithOwner:nil options:nil];

我会认为我们是一个UIViewController内,我们在(或之后)是某处viewDidLoad 。 然后,您可以使用数组从上面并添加意见,你的滚动视图的子视图。 您可能需要设置的这些观点帧妥善安置他们,但是这应该是微不足道的。

UIView *aView = [viewsFromNib objectAtIndex:0];
[self.scrollView addSubview:aView];

我希望你设置了正确的方向。

编辑:

如果您想了解更多信息,你可能需要阅读深入碎粒如何工作来管理你的期望。 与UINib文档链接是特别的“资源编程指南” 笔尖部分



Answer 2:

安德烈,这可以相对容易地完成。 确保导入要嵌入的类。 然后用你的正常创建它们

ClassName *subview=[[ClassName alloc]init]; 
[subview.view setFrame:CGRectMake(x,y,width,height)]; 
[self.view addSubview:subview.view]; 

将它添加到X,Y坐标您与您的宽度,高度指定的大小指定。 你可以在viewDidLoad中做到这一点或当你需要创建它们。



文章来源: How to embed nibs programmatically?