【问题标题】:How to load same view multiple times in a view controller如何在视图控制器中多次加载相同的视图
【发布时间】:2019-08-10 19:30:23
【问题描述】:

快速学习..所以我遇到了一个场景并且不确定正确的方法

我有一个视图控制器,其中加载的子视图取决于正在传递的对象中的值

例如:考虑一个页面,其中对象包含姓名、电话(家庭、工作、手机)、地址、生日

现在在我的视图控制器中,我想显示如下图所示的字段

所以我的模型看起来像:

struct Info {
  let name: String
  let phone: [Phone]
  let address: [Address]
  let bday: String
 }

对于电话信息,我需要循环通过电话阵列并适当地添加视图。如果那个 Phone 结构没有移动信息,那么我不需要显示单元格。

所以我创建了 XIB 文件并尝试加载该自定义视图

我还需要为“用家庭电话查看”添加“用手机查看”等约束,以便它们对齐并显示如上图所示

所以我的问题是

  1. 如何将该 xib 添加到我的视图控制器中

2.我是在代码中手动添加约束还是有其他方式(请给我一个例子,我如何添加相同的)

如果我的方法有误,请告诉我正确的做法

您的建议会更有价值

【问题讨论】:

  • 你检查过UITableview吗?
  • 我同意。这绝对看起来像是 UITableView 的工作
  • 我只有一个对象。我还需要将对象值解析为数组以显示表格视图。相反,我认为使用自定义视图和重复使用相同的视图会更有效,因为我可以避免额外的解析
  • 如果您不想进行更多解析,则可以将所有值放入全局变量中,然后相应地使用它们。这里 UItableview 是最好的选择

标签: ios swift uiview uiviewcontroller addsubview


【解决方案1】:

在您的xibstoryboard 中创建UIStackView。由于堆栈视图具有自行调整视图高度的内置功能。根据需要将所有元素(在您的案例标签中包含姓名、电话号码等)添加到 verticalhorizontal 中的 UIStackView 订单中。在您的控制器中,只需隐藏您不需要为该特定单元格显示的元素。您应该已经显示了所需的视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    相关资源
    最近更新 更多