UIImageView просто не появляется в пользовательском UITableViewCell - PullRequest
2 голосов
/ 13 сентября 2010

У меня есть ячейка таблицы, в которую я добавляю подпредставления программно. Все текстовые подпредставления работают нормально, но я не могу заставить работать подпредставление изображения.

Вы заметите, что я установил цвет фона на черный. Это просто для того, чтобы показать мне, что подпредставление действительно инициализируется и правильно размещается в ячейке. Когда я убираю цвет фона, там ничего нет.

Кроме того, стиль ячейки - UITableViewCellStyleDefault, но я не думаю, что это уместно для пользовательских подпредставлений. Я хочу, чтобы изображение располагалось справа, поэтому я не использую стандартное свойство imageView, которое предлагают ячейки.

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

        // ... add textual views ...

        UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"clock.png"]];
        img.frame = CGRectMake(271.0f, 10.0f, 19.0f, 22.0f);
        img.backgroundColor = [UIColor blackColor];

        [cell addSubview:img];
    }

    // ... more code ...

    return cell;
}

1 Ответ

0 голосов
/ 13 сентября 2010

Ваш код выглядит хорошо до некоторой степени. Одна проблема, с которой я столкнулся при создании собственных UITableViewCells в коде, заключалась в том, что я создавал ячейки с такими же переменными, как и вы, но вы не должны этого делать.

Что вам нужно сделать, это создать ячейку и затем установить переменные. Если ячейки разные, вы должны использовать разные идентификаторы повторного использования. Надеюсь, что это имеет смысл, если не дайте мне знать, и я буду обновлять.

...