У меня есть UITableViewController
, который содержит список предметов. Теперь я хочу, чтобы список автоматически прокручивался до элемента (индекс = bestOne
) после появления представления. Тем временем я хочу, чтобы предмет был окрашен в красный цвет и помечен как Marked
.
Мой код примерно достигает того, что я хочу. Но на самом деле я вижу более одного красного элемента , повторяющегося : каждые 10 элементов красного элемента.
Я новичок в разработке для iphone, думаю, это может быть связано с многоразовыми ячейками. Но я не совсем уверен, почему. Кто-нибудь может предложить один из способов решения этой проблемы? Заранее спасибо.
(void)viewDidAppear:(BOOL)animated
{
if (self.bestOne != -1)
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.bestOne inSection:0];
[self.tableView scrollToRowAtIndexPath: atScrollPosition: animated:YES];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [self.array objectAtIndex:indexPath.row];
if (indexPath.row == self.bestOne)
{
cell.detailTextLabel.text = @"Marked";
cell.textLabel.textColor = [UIColor redColor];
}
return cell;
}