我有一个带有UIScrollView的UIViewController。
然后我创建了一个新的UIView子类,其中包含一些我希望以编程方式添加到此UIScrollView中的属性,直到我的数据结束。
看起来像这张照片的东西:
我已经通过创建视图并将其类设置为自定义视图子类来阅读其他主题,但我想以编程方式执行此操作并且无法正常工作。
我该怎么做?
答案 0 :(得分:6)
从您的图片看起来您正在寻找从笔尖加载视图并将其添加为UIScrollView的子视图。要执行此操作,请查看UINib documentation。
你想创建你的nib并将它的主视图设置为你的UIView子类的一个实例,然后在你的viewController的viewDidLoad
中加载nib,并将nib的视图添加为你的scrollview的子视图(我是假设是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];
我希望这能让你朝着正确的方向前进。
修改强>
如果您想了解更多信息,可能需要深入了解nib如何管理您的期望。与UINib文档链接的是“资源编程指南”,特别是nib section
答案 1 :(得分:1)
André,这可以相对轻松地完成。确保导入要嵌入的类。然后用你的正常
创建它们ClassName *subview=[[ClassName alloc]init];
[subview.view setFrame:CGRectMake(x,y,width,height)];
[self.view addSubview:subview.view];
将它添加到您指定的x,y坐标,其宽度,高度指定的大小。您可以在viewDidLoad中或在需要创建它时执行此操作。