Ios 如何获取表中所有当前行信息
我不熟悉斯威夫特。我正在以编程方式完成我的项目,我将数据从api加载到tableView和tableView(如ios设置页面)。。 现在我需要所有行信息时,点击“添加到购物车”按钮。我怎么做 以下是我的代码示例:Ios 如何获取表中所有当前行信息,ios,swift,uitableview,swift3,Ios,Swift,Uitableview,Swift3,我不熟悉斯威夫特。我正在以编程方式完成我的项目,我将数据从api加载到tableView和tableView(如ios设置页面)。。 现在我需要所有行信息时,点击“添加到购物车”按钮。我怎么做 以下是我的代码示例: func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { switch indexPath.section { case
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.section {
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: cartHeaderCell, for: indexPath) as! CartHeaderCell
cell.configureCell(indexPath.item)
return cell
case 1:
let obj = data?[indexPath.row]
var cell = UITableViewCell()
switch obj {
case is Addon:
cell = tableView.dequeueReusableCell(withIdentifier: addonCell, for: indexPath) as! AddonCell
let switchView = UISwitch(frame: .zero)
switchView.setOn(false, animated: true)
cell.accessoryView = switchView
guard let addon = obj as? Addon else {
return cell
}
cell.textLabel?.text = "\(addon.name) + €\(addon.price)"
case is AddonGroup:
cell = tableView.dequeueReusableCell(withIdentifier: addonGroupCell, for: indexPath) as! AddonGroupCell
cell.accessoryType = UITableViewCellAccessoryType.disclosureIndicator
guard let addonGroup = obj as? AddonGroup else {
return cell
}
if let addons = addonGroup.addonList {
cell.detailTextLabel?.text = ""
var selectedAddons = ""
for _addon in addons
{
if _addon.isSelect == true {
selectedAddons = selectedAddons + "\(_addon.name)"
}
}
cell.detailTextLabel?.text = selectedAddons
}
cell.textLabel?.text = addonGroup.name
...........................................
正如Fahim提到的,您需要建立一个数据模型,记录用户与每个单元交互之前/期间/之后每个单元的状态。因此,当单元格离开屏幕,然后重新打开时,它将显示模型的正确状态 其次,对于UISwitchView,您应该在每个单元格内实例化这些视图并将其添加到contentView中,以保持cellForRow函数干净且无问题。原因引导我进入下一点:如何在用户与UISwitchView交互后记录每个UISwitchView的状态。您需要创建一个协议并在UICollectionViewCell中添加一个委托(该委托继承类,并且委托应该是弱变量),以便在点击UISwitch时更新模型
如果你还有任何问题,我可以尽力帮助你 我假设您只是想通过获取表的所有行来获取用户选择
UITableView
只创建可见的行,因此无法从表视图中获取所有行。相反,这应该通过用于填充表视图的数据模型来处理。如果要在用户做出选择时保留用户选择,则应检测特定事件并更新模型。如果你需要更多信息,我很乐意帮助你。@Fahim谢谢。。我该怎么做?请告诉我,或者提供我将接受的答案,这取决于您如何设置表视图的数据。configureCell
方法从何处获取配置每个单元格视图的数据?这可能是你的出发点。然后,当用户从表视图中做出选择时,必须将该选择的数据添加到该模型中。如果我能看到项目代码,我可以给出更详细的答案。你能和我分享这个项目吗?