作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个带有设置页面的应用程序,该页面设置为带有自定义单元格的 UITableView。这些单元格设置如下:
每次更改其中一个开关时,我都需要遍历这些单元格的表格。我需要检查打开了哪些开关以制作用户首选设置的数组(在这种情况下,打开的单元格将其标签添加到数组中)。这是我试图用来执行此操作的代码:
for var x = 0; x < preferredDistances.count; x++ {
var indexPath = NSIndexPath(forRow: x, inSection: 0)
let cell : SettingsCell = settingsTable.cellForRowAtIndexPath(indexPath) as! SettingsCell
if cell.settingsCellSwitch.on {
preferredDistances.append(cell.settingsCellLabel.text!)
}
}
当尝试使用此代码遍历 UITableView 时,我的单元格返回 nil。我在这段代码中做错了什么,我该如何解决?
最佳答案
您的方法存在根本性缺陷。您有责任了解启用了哪些开关。由于表格单元格被重复使用,您无法可靠地询问它们开关设置的位置。
这是另一种可能的方法:
初始化 View 时(例如,在 viewDidLoad()
中),创建一个具有默认设置的数组:
var settings = [true, false, false, false, true, false]
此数组的长度应与您在 numberOfRowsInSection
中引用的数组的长度相同。
更新 slider (由用户更改)时,更新数组中的相应项
在cellForRowAtIndexPath
中,使用数组中的相关设置来设置 slider 的值。
关于ios - 使用自定义 UITableViewCells 循环遍历 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31038361/
我是一名优秀的程序员,十分优秀!