答案 0 :(得分:1)
具有一个带有未锁定行索引的数组。
var unlockedRows: [Int] = [1]
现在,您可以在didSelectRowAt
委托中检查该行是否已解锁。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if unlockedRows.contains(indexPath.row) {
let nextIndex = indexPath.row + 1
if nextIndex < numberOfRows { //Use your variable that gives total number of rows here instead of numberOfRows
unlockedRows.append(indexPath.row + 1)
// Do other stuff like removing the locked icon of the next cell
}
return true
}
// Display row locked message?
return false
}
答案 1 :(得分:1)
首先,您需要一个单位来定义谁被解锁。 然后,当您单击时,向此标志添加1即可解锁下一个单元格。
private var unlocked: Int = 0
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if(unlocked == indexPath.row) {
self.unlocked += 1;
tableView.reloadData()
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:MyCustomCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! MyCustomCell
cell.myCellLabel.text = "\(indexPath.row + 1)"
if(indexPath.row > self.unlocked) {
// put the locker
}
return cell
}