При выборе нескольких ячеек в моем табеле также выбираются ячейки вне поля зрения. Я понимаю, что это потому, что я повторно использую ячейку и сохраняю ее выбор, когда я прокручиваю вниз. Я нашел несколько человек с подобными проблемами, но не смог перевести их решения для решения моей проблемы. Я пытался не dequeing клетку и просто использовать:Множественный выбор UITableView без dequeueReusableCellWithIdentifier
let cell = NewBillSplitterItemCell()
но получить:
unexpectedly found nil while unwrapping an Optional value
на линии:
cell.currentSplitters.text = splitterList
в следующем коде:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
fetchBillItems()
let cell: NewBillSplitterItemCell = tableView.dequeueReusableCellWithIdentifier("NewBillSplitterItemCell") as! NewBillSplitterItemCell
let item = allItems[indexPath.row]
let numberOfSplitters = item.billSplitters?.count
if numberOfSplitters == 0 {
cell.currentSplitters.text = "No one is paying for this item yet."
} else {
var splitterList = "Split this item with "
let itemSplitters = item.billSplitters?.allObjects as! [BillSplitter]
for i in 0...Int((numberOfSplitters)!-1) {
if numberOfSplitters == 1 {
splitterList += "\(itemSplitters[i].name!)"
} else {
splitterList += ", \(itemSplitters[i].name!)"
}
}
cell.currentSplitters.text = splitterList
}
cell.name.text = item.name
cell.price.text = "£\(item.price!)"
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
if cell.accessoryType == .Checkmark
{
cell.accessoryType = .None
selectedItems.removeAtIndex(selectedItems.indexOf(allItems[indexPath.row])!)
} else {
cell.accessoryType = .Checkmark
selectedItems.append(allItems[indexPath.row])
}
}
}
Я не совсем понимаю, что делать, и любой hel p будет здорово. Благодаря
Все, что находится в ячейке, равно нулю, поэтому оно начинается с cell.currentSplitters, а затем cell.name будет получать ту же ошибку, если она дошла до этого и т. Д. – Wazza
что такое 'currentSplitters' в' cell.currentSpliiters.text'? Это UILabel? –
Да, так есть .name и .price – Wazza