如何创建自定义的UIView?
-
26-09-2019 - |
题
我创建在那里我已经制定了一些UILabels和一个的UIImageViews UIView子类和相应的XIB文件。我想,然后把这个自定义的UIView的多个副本到一个UIViewController。
当我这样做,他们出现在界面生成器的空白,并没有当应用程序加载时出现。做什么样的方法,我需要的UIView子类来实现,以使这项工作?
解决方案
迄今为止最简单的方法是创建具有文件的所有者设定为NSObject的笔尖,包含含有布局元件一个视图。
然后
NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
UIView *fv = [[arr objectAtIndex:0] retain];
// now you have the view, do something with it:
fv.center = CGPointMake(100,100);
[self.view addSubview:fv];
没有必要做文件的所有者任何东西;它甚至设置为nil这里。
其他提示
这是类似于使用笔尖文件以创建表视图细胞。 这里一>是一个网页,讨论如何做到这一点。
您将需要把出口在UIViewController
子类的自定义视图,并设置UIViewController
子类的“文件的所有者”在您的自定义视图笔尖(的.xib)文件。然后,你创建的顶级视图对象的插座连接(再次在您的自定义视图笔尖文件)。
然后,你要实例自定义视图在视图控制器代码每次调用:
[[NSBundle mainBundle] loadNibNamed:<custom view nib name> owner:self options:nil];
您添加的出口将被设置为指向您的自定义视图的新实例。
唯一的缺点这种方法,你将不得不奠定了您的自定义视图的情况下,在您的视图控制器编程,而不是图形化界面生成器。
另一种方法是在你的UIView
子类编程创建扣帽子和图像,然后你可以将其添加到界面生成器一样使用任何其他UIView
子类。
修改强>:不幸的是在Xcode 4.0,这种能力除去
一旦在界面生成器配置了子视图中,可以创建一个新组(使用COG按钮库窗口的底部)并拖动子类对象从列表视图(包含自己的图像和标签)(即不是布局视图)回库窗口。
您可以再图形化视图子类的多个实例添加到任意界面生成器视图或窗口,就像你使用内置在库中的对象。