Вы добавляете UITextField
в ячейку каждый раз, когда ячейка используется повторно.Идея состоит в том, чтобы добавить его только при создании ячейки, а затем получить существующее представление из существующей ячейки
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
UITextField* tf = ...;
tf.tag = kMyTextFieldTag;
[cell.contentView addSubview:tf];
}
UITextField* tf = (UITextField*)[cell.contentView viewWithTag:kMyTextFieldTag];
tf.text = ...;
. Еще лучше идея сделать UITextField
accessoryView
ячейки вместодобавив его в качестве подпредставления.Если это не дает желаемого результата, рассмотрите возможность создания пользовательской ячейки вместо добавления представлений в ячейку UITableViewCellStyleValue1
.