Оцените каждую строку UITableView отдельно iPhone - PullRequest
0 голосов
/ 04 ноября 2011

Я хочу показать картинку, если каждая строка начинается с определенного символа, скажем «&» в приведенном ниже примере. Код ниже, кажется, работает, только если первая строка не начинается с '&'. Если в первой строке есть «&», то во всех строках будет изображение. Что не так?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                       reuseIdentifier:CellIdentifier] autorelease];
    }
    if ([[[array objectAtIndex:(indexPath.row)] substringToIndex:1] isEqualToString:@"&"])
        {
            cell.textLabel.text = [array objectAtIndex:(indexPath.row)];
            cell.detailTextLabel.text = [array objectAtIndex:(indexPath.row)+1];
            cell.imageView.image = [UIImage imageNamed:@"picture.png"];
            return cell;
        }
        else
        {
            cell.textLabel.text = [array objectAtIndex:(indexPath.row)];
            cell.detailTextLabel.text = [array objectAtIndex:(indexPath.row)+1];
            return cell;
        }
    }

1 Ответ

0 голосов
/ 04 ноября 2011

Поскольку первый cell может быть повторно использован позже, вы должны «сбрасывать» его состояние при каждом вызове cellForRowAtIndexPath.Попробуйте добавить cell.imageView.image = nil после cell.detailTextLabel.text в блоке else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...