ios - Interface Builder - 如何创建具有多个 subview 的自定义 UIView

标签 ios objective-c xcode cocoa-touch interface-builder

如何在界面生成器中创建自定义 UIView(具有许多 subview 、UITextFields 等)?

我不想要一个带有 NIB 的 viewController 只是一个简单的 UIView,有很多 subview ,在 IB 中创建,然后我可以分配初始化和使用,这可能吗?

最佳答案

是的,您可以在 nib 中创建 UIView——当您创建基于 View 的 nib 时,这就是您正在创建的 UIView。没有 View Controller (尽管通常,您将 View Controller 设置为 nib 的文件所有者)。

您需要创建一个自定义 View 类,并将 xib 上的 View 类更改为该自定义类,以连接该 View 中的 IBOutlets。当你想在 Controller 中使用 View 时,你可以像这样实例化它:

UINib *nib = [UINib nibWithNibName:@"CustomView" bundle:nil];
CustomView *view = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];

此方法的局限性在于,您的 outlet 属于 View 类而不是 View Controller ,这在 MVC 意义上可能不是(但可能是)正确的做法。

关于ios - Interface Builder - 如何创建具有多个 subview 的自定义 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109741/

相关文章:

Xcode : Alamofire get String response

ios - 让 UIImageView 上升然后下降 Swift

ios - objective-c : how to inherit category methods loaded in a parent class?

iphone - 更改自动生成的导航栏的颜色

objective-c - 共享 session 与默认配置的 session

ios - 使用不同的 ActionSheets Swift

ios - 当内存消耗攀升但 Leaks 未检测到泄漏时,如何处理 iOS 中的泄漏?

ios - Swift,不能创建字典来保存键值吗?

ios - iPhone 关闭或应用程序卸载时的通知

ios - Xcode iOS UIView with tap gesture allowing input on subviews