如何在 swift 中使用不同的原型单元构建 UITableViewController
Posted
技术标签:
【中文标题】如何在 swift 中使用不同的原型单元构建 UITableViewController【英文标题】:how to build up UITableViewController with different Prototype Cells in swift 【发布时间】:2018-11-28 10:01:07 【问题描述】:我添加了 UI 表格视图, 并为每一个创建独特的原型单元:
我将 UItableview 单元附加到唯一的原型单元,并在情节提要中为每个单元分配了一个标识符(我还在每个类中放置了函数来更改该特定单元中的文本等)
在我的主 UITableViewController 中, 我将尺寸设置为稍后更改的服装值,
override func numberOfSections(in tableView: UITableView) -> Int
// #warning Incomplete implementation, return the number of sections
return tableSectionsSize
我现在的问题是如何设置屏幕本身, 有我想要的,有头条新闻什么的?
我找到的所有教程都是针对一个 tableview 的,其中所有数据都是相同的,但在我的例子中,我有 8 个不同的 Prototype Cell。
你可以参考我想要实现的教程吗? 或者向我解释当我有不同的 Prototype Cell 并且我想显示\隐藏它们中的每一个时如何构建数据本身?
【问题讨论】:
8 个不同的部分是指您有 8 个不同的单元格吗?在这种情况下,您只需要 1 个部分 也许这会有所帮助:briterideas.com/blog_images/tableviews/part3/repeated_rows.png 您可以清楚地看到有 3 个部分。每个部分有 3 行。它们确实具有相同的数据,但单元格可能不同。将一个部分视为一组单元格 @Craz1k0ek 我实际上是指 8 个不同的原型单元,确实是正确的。但我想知道如何显示每个原型单元,以及如何使用不同的原型单元类型构建它 【参考方案1】:您可能指的是cells
,而不是sections
。
您找到的所有教程都在谈论Dynamic Prototypes
类型的单元格。通过您图像中出现的Prototype Cells
,这就是您的UITableView
正在使用的内容。所以第一件事就是在Attribute Inspector
中切换到Static Cells
:
然后,像您已经做的那样添加和自定义您的每个TableViewCell's
。添加尽可能多的标签、按钮、开关等。它们将显示在Document Outliner
中,如下所示。您现在应该有 8 个自定义单元格。
如果您希望对它们进行逻辑分组,您应该按照 Craz1k0ek 提到的方法将它们分成多个部分,同样在 Attribute Inspector
中,将单元格拖到相应的部分。
这里不需要使用numberOfSections(in tableView:)
方法。
我希望这会有所帮助。
【讨论】:
这无济于事,因为我插入了大量数据,而且我总是知道要显示什么以及它的外观不是静态的,【参考方案2】:对于表格,我们有一个方法 cellForAtIndexPath。这里根据你的逻辑,你可以选择和配置单元格,然后返回它。
但如果您的布局不会改变,那么最好使用静态表格。在静态表格中预先设计您的单元格。它会正常工作的。
【讨论】:
是的,但我的内容正在动态变化 然后您可以根据自己的逻辑进行选择和配置,并从 cellForAtIndexPath 消息中返回该单元格。然后将其类型转换回特定类型的单元格以访问它的属性。为此,您需要再次应用相同的“逻辑” 你知道如何在各个单元格之间添加分隔标题吗? @user8950495 我没有得到你。你想插入标签吗?还是要包含行? 我的意思是我有不同的单元格类型,我想知道如何在它们之间进行划分并在它们之间添加一个标题,我该怎么做?以上是关于如何在 swift 中使用不同的原型单元构建 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 在 XCode UI 自动化中选择随机表格视图单元格
Swift3,如何在不同的 viewController 中使用相同的 UITableView
Swift 数据从 tableView 到不同的 ViewController
如何在 Storyboard 控制器中重用定义为原型单元的自定义 UITableViewCell