UITableView 仅用于 GUI 控件,没有 DataSource

Posted

技术标签:

【中文标题】UITableView 仅用于 GUI 控件,没有 DataSource【英文标题】:UITableView just for GUI controls, no DataSource 【发布时间】:2017-08-17 21:36:48 【问题描述】:

我即将用 Swift 编写一个 ios 应用程序。主视图控制器是一个 UISplitViewController。它的主视图是一个导航控制器,其根视图控制器是一个 UITableViewController。 此 TableView 中的单元格应仅包含 GUI 元素(UIButton、UISwitch、UITextField 等)。其中有很多,所以我想利用 TableView 的滚动功能,并想设计一些自定义 Prototype Cells。

但是,我仍然是 Swift、Cocoa Touch 等的学习者。我知道 TableView 需要一个 DataSource(和一个 Delegate),但是因为我的单元格中没有要显示的数据......我的 cellForRowAtIndex 函数会是什么样子?我什至如何在 TableView 中创建一些“恒定”单元格(原型 1、原型 2、...)?我想这在 IB 的设计时是不可能的,而只能通过代码来实现?怎么样?

提前非常感谢!

【问题讨论】:

【参考方案1】:

在 viewController 类中设置 tableView 委托是强制覆盖这些方法的。

您可以使用numberOfRowsInSection 返回一个常量值,该值将是您的行数。

在您的cellForRowAt 中,您可以验证您所在的行并调用相应的单元格。

internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
     if indexPath.row == 0 
       //call cell type 1
     

在这里,您可以参考使用 xib 创建自定义单元格并将其调用到您的表格中。

Custom UITableViewCell from nib in Swift

【讨论】:

以上是关于UITableView 仅用于 GUI 控件,没有 DataSource的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式GUI LVGL『Table表格控件』介绍

嵌入式GUI LVGL『Table表格控件』介绍

如何监听各个GUI控件的交互事件

显示当前电池电量的 gui 控件 windows mobile C#

Python日记——利用Tkinter学习GUI设计

uitableview didselectrowatindex 仅适用于第一个表视图而不适用于同一视图控制器中的第二个表视图?