Попробуйте переместить deleteBtn.tag = indexPath.row;
за пределы условия if (cell == nil)
.
В вашей текущей настройке, когда вы повторно используете ячейку, а не создаете новую, tag
будет ссылаться на старую indexPath.row
, а не на новую. Это может быть причиной того, что вы видите удаленные ячейки, отличные от ожидаемых.
if (cell == nil) {
// Do you other stuff here
}
deleteBtn.tag = indexPath.row;
return cell;
Кроме того, вы, похоже, не понимаете концепции повторного использования ячеек таблицы. Идентификатор должен быть константной строкой, применяемой ко всем ячейкам, а не динамической, как вы настроили здесь. Например
NSString *identifier = @"someUniqueValue";