我有一个 TableView ,其中加载了 4 行。
第 3 行将有一个复选框。我只想在选中 Row3 复选框时启用 Row 4
所以我有一个用于复选框(即按钮)和点击该复选框的操作的 socket 。
我的问题是如何获取对下一个单元格的引用并使其启用/禁用
我试图获取该单元格的引用
myTableView.cellForRow(at: index + 1)
但它会抛出二进制操作数无法应用于 indexPath 的错误。
请建议我如何实现
最佳答案
我假设您有自己的自定义 UITableViewCell
类。而您的 MyTableViewController
是此 tableview 单元格的委托(delegate)。
每当用户选中/取消选中时,您的框委托(delegate)都会将这件事告诉您的 Controller ,然后您调用 reload 方法来删除给定的行。
这是我在我的应用中使用的解决方案。
import Foundation
import UIKit
class MyTableViewController: UITableViewController {
private struct CurrentSetting {
var RowAEnabled: Bool = true
var RowBEnabled: Bool = true
var RowCEnabled: Bool = true
var RowDEnabled: Bool = true
var RowEEnabled: Bool = true
//...
//maybe more?
}
/// Let's say those are your table view rows. Data or whatever.
fileprivate var settings: [String] {
//In here you have your static position.
var configuration = ["Row A","Row B", "Row C"]
//However, if some data are enabled/disabled you modify it based on settings
if current.RowAEnabled {
configuration += ["Row D"]
}
return configuration
}
//This is your setting for current tableview
private var current = CurrentSetting()
}
//Use this to reload row for your enable/disable cell.
tableView.reloadRows(at: [indexPath], with: .none)
举例说明它是如何与我的应用一起工作的。 重要提示:设置它是您的表格 View 的数据源。项目数。
关于ios - 启用/禁用 TableView 单元格 - iOS - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49041353/