如何在ios中创建没有tableview和collection view的行

Posted

技术标签:

【中文标题】如何在ios中创建没有tableview和collection view的行【英文标题】:How can I create rows without tableview and collection view in ios 【发布时间】:2019-09-28 06:09:00 【问题描述】:

我在面试中有问题。我在 xcode 中没有 tableview 和 collection view。然后我想像tableview一样动态创建行。我怎样才能做到这一点 ?提前谢谢你。

【问题讨论】:

【参考方案1】:

使用UIScrollView,遍历“单元”的数量并将它们添加为子视图。

请注意,在用户滚动时需要一些逻辑来重用它们,这样您就不会根据“单元格”的数量而溢出内存。

此外,您应该讨论一些委托和数据源方法以及它们的可能替代方法。

【讨论】:

在滚动视图中使用堆栈视图也有助于设置约束。 @pepsy 你能解释一下吗 我的意思是,通过使用 Stack View 的 ‘addArrangedSubview’ 添加单元格,它会自动设置单元格的顶部、底部、左侧和右侧约束。今晚晚些时候我可以举个例子来回答。【参考方案2】:

您首先需要一个UIScrollView,以便能够滚动您的单元格。由于在将子视图添加到滚动视图时设置约束可能很烦人,所以我会使用垂直的UIStackView 来简化操作。

当调用垂直堆栈视图的addArrangedSubview(view: UIView) 时,它会自动为您的子视图设置约束以占据堆栈视图的整个宽度,并将其定位在堆栈视图内最后一个视图的正下方。

视图结构如下所示:

滚动视图的约束是:

堆栈视图的约束是:

您还可以在第一个堆栈视图中添加其他堆栈视图以创建不同的部分。在下面的示例中,“主”堆栈视图的间距为 5,而堆栈视图“第 0 节”和“第 1 节”的间距为 1。

现在,正如 Gustavo Vollbrecht 所说,如果您的“表格视图”上碰巧有很多单元格,那么您需要实现一些逻辑来重用单元格,以防止内存溢出。但这会使这个答案变得更加复杂,所以我希望你不需要它。

【讨论】:

【参考方案3】:

行只是视图。如果您不使用 .xib 作为 UITableViewCell() 或来自 .xib 作为 UINIb(...)。实例化(...)。

【讨论】:

以上是关于如何在ios中创建没有tableview和collection view的行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IOS 中创建具有不同 UITableViewCell 的 TableView?

如何在 tableView 中创建自定义单元格(滑动单元格)

如何在 tableview 中创建一个具有多个字段的单元格?

如何在单个 tableView 中创建各种类型的单元格?

如何在 swift 中在动态 TableView 中创建动态 tableView?

在 UITableview 中创建 2 列 [重复]