Uitableviewcell 应该知道它是否在应用程序加载时被选中 - iOS swift
Tableviewcell should know if it is selected on app load in - iOS swift
我用假值和真值构建一个开关,每当我 select 我的表格视图中的一个单元格时。现在工作正常。但是在应用程序加载时,单元格不知道它之前已经被 selected。我正在根据保存的开关数据更改负载单元格,因此它看起来像是一个 selected 单元格。当我点击单元格时。它的行为就像我第一次按下它一样。所以它不首先使用 deselect 函数。并再次从 selecting 单元格开始,这对用户来说并不好。我尝试在 true 上使用 setSelected。但这对我没有用。
我想我在这里遗漏了一些东西...感谢任何帮助:)
if boolTest?.boolValue == true {
println("its true")
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
cell.tintColor = UIColor(red:0.13, green:0.13, blue:0.13, alpha:1)
}
else {
println("its false")
cell.accessoryType = UITableViewCellAccessoryType.None
}
您不应尝试通过调用 setSelected 自行设置单元格的选定状态。 tableView 维护自己的一组选定 indexPaths,因此当单元格被重用时,适当的行将保持选定状态。
区别很重要,因为与 tableView 相比,当 tableView 准备显示单元格的(选定的)时,tableView 知道是否选择了 indexPath ) 外观。
如果您希望单元格仅显示为已选中,您可以在 willDisplayCell
中调用 setSelected
。
如果您希望 tableView 知道单元格已被选中,以便它可以为您处理取消选中的单元格,请使用 selectRowAtIndexPath
。
这是我所做的更改。现在它知道什么时候被选中了。
if boolTest?.boolValue == true {
println("its true")
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
cell.tintColor = UIColor(red:0.13, green:0.13, blue:0.13, alpha:1)
tableView.selectRowAtIndexPath(indexPath, animated: false, scrollPosition: UITableViewScrollPosition.None)
}
else {
println("its false")
cell.accessoryType = UITableViewCellAccessoryType.None
}
我用假值和真值构建一个开关,每当我 select 我的表格视图中的一个单元格时。现在工作正常。但是在应用程序加载时,单元格不知道它之前已经被 selected。我正在根据保存的开关数据更改负载单元格,因此它看起来像是一个 selected 单元格。当我点击单元格时。它的行为就像我第一次按下它一样。所以它不首先使用 deselect 函数。并再次从 selecting 单元格开始,这对用户来说并不好。我尝试在 true 上使用 setSelected。但这对我没有用。
我想我在这里遗漏了一些东西...感谢任何帮助:)
if boolTest?.boolValue == true {
println("its true")
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
cell.tintColor = UIColor(red:0.13, green:0.13, blue:0.13, alpha:1)
}
else {
println("its false")
cell.accessoryType = UITableViewCellAccessoryType.None
}
您不应尝试通过调用 setSelected 自行设置单元格的选定状态。 tableView 维护自己的一组选定 indexPaths,因此当单元格被重用时,适当的行将保持选定状态。
区别很重要,因为与 tableView 相比,当 tableView 准备显示单元格的(选定的)时,tableView 知道是否选择了 indexPath ) 外观。
如果您希望单元格仅显示为已选中,您可以在 willDisplayCell
中调用 setSelected
。
如果您希望 tableView 知道单元格已被选中,以便它可以为您处理取消选中的单元格,请使用 selectRowAtIndexPath
。
这是我所做的更改。现在它知道什么时候被选中了。
if boolTest?.boolValue == true {
println("its true")
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
cell.tintColor = UIColor(red:0.13, green:0.13, blue:0.13, alpha:1)
tableView.selectRowAtIndexPath(indexPath, animated: false, scrollPosition: UITableViewScrollPosition.None)
}
else {
println("its false")
cell.accessoryType = UITableViewCellAccessoryType.None
}