如何在界面生成器中创建自定义 UIView(具有许多子视图、UITextField 等)?
我不想要一个带有 NIB 的 viewController 只是一个简单的 UIView,有很多子视图,在 IB 中创建,然后我可以分配 init 并使用,这可能吗?
如何在界面生成器中创建自定义 UIView(具有许多子视图、UITextField 等)?
我不想要一个带有 NIB 的 viewController 只是一个简单的 UIView,有很多子视图,在 IB 中创建,然后我可以分配 init 并使用,这可能吗?
是的,您可以在 nib 中创建 UIView —— 当您创建基于视图的 nib 时,这就是您正在创建的 UIView。没有视图控制器(尽管通常,您将视图控制器设为 nib 的文件所有者)。
您需要创建一个自定义视图类,并将 xib 上的视图类更改为该自定义类,以在该视图中连接 IBOutlets。当你想在控制器中使用视图时,你可以像这样实例化它:
UINib *nib = [UINib nibWithNibName:@"CustomView" bundle:nil];
CustomView *view = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
这种方法的局限性在于,您的插座属于视图类而不是视图控制器,这可能不是(但可能是)在 MVC 意义上做正确的事情。