Хотя есть несколько сообщений на сайте о повторении ячейки UITableview при прокрутке, я не мог найти решение, возможно, потому, что я довольно новичок в obj-c.UITableView помещает содержимое ячейки в неправильные строки после прокрутки
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *cellIdentifier = [NSString stringWithFormat:@"cell%d",indexPath.row];
UILabel *firstlabel = nil;
UILabel *secondlabel = nil;
UILabel *thirdlabel = nil;
myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
if(!cell) {
cell = [[myTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
}
if (noOfRows < [_eachrow count]-1) {
_eachcolumn = [_eachrow[noOfRows] componentsSeparatedByString:@"|"];
firstlabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0, 142.0,tableView.rowHeight)];
firstlabel.font = [UIFont fontWithName:@"Verdana" size:12];
firstlabel.text = _eachcolumn[0];
firstlabel.textAlignment = ALIGN_LEFT;
firstlabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleHeight;
[cell.contentView addSubview:firstlabel];
secondlabel = [[UILabel alloc] initWithFrame:CGRectMake(142.0, 0, 50.0,tableView.rowHeight)];
secondlabel.font = [UIFont fontWithName:@"Verdana" size:12];
secondlabel.text = _eachcolumn[1];
secondlabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleHeight;
[cell.contentView addSubview:secondlabel];
thirdlabel = [[UILabel alloc] initWithFrame:CGRectMake(192.0, 0, 60.0,tableView.rowHeight)];
thirdlabel.font = [UIFont fontWithName:@"Verdana" size:12];
thirdlabel.text = _eachcolumn[2];
thirdlabel.textAlignment = ALIGN_CENTER;
thirdlabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleHeight;
[cell.contentView addSubview:thirdlabel];
noOfRows++;
return cell;
}
else return cell;
}
Итак, моя проблема в том, когда я прокрутку вверх или вниз, клетки продолжают помещены в неправильных строках без рисунка. Пожалуйста, помогите мне решить эту проблему. Заранее спасибо
Это мне не понятно, почему вы добавляете свои метки в коде, как это. У вас есть пользовательская ячейка (myTableViewCell), почему бы не настроить метки в IB (если вы ее используете) или в методе init для ячейки? Кроме того, идентификатор ячейки должен быть константой, не отличающейся для каждой строки. – rdelmar
количество строк неизвестно (они могут меняться для каждой даты) .. они являются динамическими ячейками .. Я создаю их программно .., мое приложение извлекает данные с php и отображает в uitableview для выбранной даты. Я не знал лучшего способа сделать это. Это прекрасно работает, за исключением того, что, когда я прокручиваю строки, очень сильно скрещиваются :( – kate