这是我的代码。我想要做的是在我选择所有部分的第一行之一时显示细节(每个部分的最后3行)。
var People是一个Set类型,它的值是[] default,当选择了一行时,它会将当前部分追加到此Set,然后当我们返回numberOfRows时,我们可以依赖于People Set并决定哪个该部分应该只显示一行,而且应该是4行。
但结果是我选择的numberOfRowsInSection总是为1行。
任何人都可以告诉我为什么会这样?
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
if Peoples.isEmpty {
return 1
}
else{
if Peoples.contains(section) {
return 4
}
else {
return 1
}
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
TV.deselectRowAtIndexPath(indexPath, animated: true)
if Peoples == []{
Peoples.insert(indexPath.section)
}
else {
if Peoples.contains(indexPath.section){
Peoples.remove(indexPath.section)
}
else {
Peoples.insert(indexPath.section)
}
}
println("\(Peoples)")
}
答案 0 :(得分:1)
好的,没有人可以帮助我,但我已经解决了这个问题。因为我在选择AninAtindexPath时忘了重新加载数据。
这是我更新的工作代码。
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
if Peoples.isEmpty {
return 1
}
else{
if Peoples.contains(section) {
return 4
}
else {
return 1
}
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
TV.deselectRowAtIndexPath(indexPath, animated: true)
if Peoples == []{
Peoples.insert(indexPath.section)
}
else {
if Peoples.contains(indexPath.section){
Peoples.remove(indexPath.section)
}
else {
Peoples.insert(indexPath.section)
}
}
tableView.reloadData()
println("\(Peoples)")
}