ios - 在 IB 中或以编程方式重用不同场景的 View

标签 ios swift uiview interface-builder

我有一个 View ,想在 IB 中的其他场景中重用。该 View 包含用户详细信息,例如姓名、头像、描述、几个按钮等。这些 View 完全相同,并且内部具有相同的元素。现在,跨场景复制它们、修复约束,然后一遍又一遍地编写相同的元素是很痛苦的。这效率不高,而且很耗时。理想情况下,我希望在 IB 上看到这些 View ,因此我不想在没有任何视觉效果的情况下以编程方式执行所有操作。有没有一种方法可以让它变得更好,以便我可以重复使用它?

最佳答案

重建相同的组件不仅很痛苦,而且设计很糟糕。我将创建一个 xib 文件,创建支持 swift 或 obj-c 文件。像平常一样连接所有 socket 。

在您需要的每个 View Controller 或 View 中,初始化它并将其添加为 subview 。

很快,我会做类似的事情:

if let subview = Bundle.main.loadNibNamded("SpecialView", owner: self, options: nil)?.first as SpecialView {

    // set constraints
    containerView.addSubView(subview)
}

关于ios - 在 IB 中或以编程方式重用不同场景的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50975484/

相关文章:

iOS - 收到关于在 Today Extension 上显示图像的内存警告

ios - 使用 NSURLSession 处理顺序下载

ios - 标签栏重叠 View 后面

iOS navigationItem.titleView 移除边距

ios - iOS 中如何查找 UIView 的 subview 的值变化

ios - 如何检查 Xcode Asset Catalog 中是否存在图像?

ios - 从 App 中获取 iOS 应用内购买产品的产品引用名称

ios - 如果 app delegate 想快速使用主 Storyboard文件,它必须实现 window 属性

ios - 在某些设备上难以将像素缓冲区写入 Assets 编写器

ios - UIButton 宽度是 UIView 宽度的 50% iOS