Я предполагаю, что под «представлением справа» вы подразумеваете представление, которое вы создаете для своей ячейки ... Проблема здесь возникает из-за того, что вы повторно используете ячейки и не сбрасываете UIView для каждой ячейки, вы увидите то же самое Проблема возникает, если у вас достаточно клеток, чтобы вы могли прокрутить их.
При повторном использовании ячеек вы всегда должны предполагать, что они содержат грязные данные, и должны загружать их правильными данными, в вашем случае ваша ошибка в следующем фрагменте:
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifierUNCHECK] autorelease];
v = [[[UIView alloc] initWithFrame:CGRectMake(5.0, 5.0, 70.0, 70.0)] autorelease];
v.contentMode = UIViewContentModeScaleAspectFill;
[v addSubview:[[UIImageView alloc] init]];//some image view
[cell.contentView addSubview:v];
}
Вы создаете экземпляр представления в ячейке только при ее первом выделении, так что это происходит ...
1- Вы делаете все свои клетки изначально и делаете их "правильный взгляд"
2- Вы удаляете ячейку
3- Для вашей второй ячейки система повторно использует UITableViewCell, который вы создали в качестве первой ячейки.
4- Поскольку ячейка не равна нулю, UIView не устанавливается, и вы видите первые ячейки UIView для второй ячейки
Поскольку вы не сбрасываете ячейки UIView, вы видите неправильный вид в ячейке вместо того, который вы ожидаете.
Чтобы исправить это, вы можете либо не использовать ячейки повторно, либо вы можете переместить код, который добавляет UIView, чтобы он происходил каждый раз, когда вызывается cellForRowAtIndexPath, таким образом правильный UIView будет загружен с правой ячейкой