Ios 通用UITableView
这是一个相当普通的问题,我已经阅读了很多答案,但我仍然想知道应该如何正确地完成它 当您有一个与iOS中的设置类似的表视图时,其中的表视图单元格具有许多不同的(按类型)单元格(一些单元格具有Ios 通用UITableView,ios,swift,uitableview,tableviewcell,Ios,Swift,Uitableview,Tableviewcell,这是一个相当普通的问题,我已经阅读了很多答案,但我仍然想知道应该如何正确地完成它 当您有一个与iOS中的设置类似的表视图时,其中的表视图单元格具有许多不同的(按类型)单元格(一些单元格具有uiswitch,一些单元格具有UIPickerViews,有关更多详细信息,请参见UITextFields等),是否应该使用静态表视图或动态表视图?实现这一目标的最佳途径是什么 我在询问一些案例,例如,信息应该从Firebase数据库这样的后端提取 这完全取决于你的需要 如果要显示UI元素,如UITextFi
uiswitch
,一些单元格具有UIPickerViews
,有关更多详细信息,请参见UITextField
s等),是否应该使用静态表视图
或动态表视图
?实现这一目标的最佳途径是什么
我在询问一些案例,例如,信息应该从
Firebase
数据库这样的后端提取 这完全取决于你的需要
UITextField
,UISwitch
等。。基于特定条件或api响应意味着您可以使用动态表视图
。在动态tableView中,您可以设计具有不同标识符的多个单元格,也可以在nib
中创建tableViewCell
静态tableView
DynamicTableView
。然后,只有您可以控制您的流程和数据
谢谢。您应该在表视图中创建自定义单元格,然后需要检测要使用的单元格类型,然后设置单元格 假设你有三种类型的细胞:
开关的单元格
(自定义)文本字段的单元格
(自定义)cellForRowAt
中,您需要检测要使用哪种单元格。如果有静态位置,可以通过检查indexPath.row
来实现,也可以检查数组中的数据类型,并根据该类型设置单元格
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.section {
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: "SwitchCell", for: indexPath) as! SwitchCell
// set cell values here
return cell
case 1:
let cell = tableView.dequeueReusableCell(withIdentifier: "TextFieldCell", for: indexPath) as! TextFieldCell
// set cell values here
return cell
default:
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! UITableViewCell
// set cell values here
return cell
}
}
这是一个很好的指南,可以帮助您创建自定义单元格,并且可以拥有任意数量的自定义单元格。我以前也做过很多次同样的事情 您可以在数据中包含信息,以允许表将正确类型的单元格出列并填充它 例如,你可能有一本类似于
[
"type" : "Switch",
"on" : true,
"text" : "Allow location access"
]
现在,在表视图中,您可以打开字典中的类型
,以获得正确的单元格类型。然后,您可以确保开关isOn
,并将标签文本设置为允许位置访问
当然,你需要的不仅仅是这个特殊情况,同样的基本原则也适用。你已经给出了问题的答案 1.您正在从Firebase获取数据。那么它可能是动态的。那么最好使用动态的原型细胞 2.所以数据不一样。然后为每种类型制作单独的原型单元。最后在动态数据中使用基于“键”的原型单元 即使您的Firebase数据是静态的,上面的方法也是最好的。看看框架。