UIImageView внутри UITableViewCell - PullRequest
       9

UIImageView внутри UITableViewCell

0 голосов
/ 01 декабря 2011

Я пытаюсь отобразить UIImageView внутри UITableViewCell.

Внутренний метод - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath У меня есть:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }


    CGSize cellSize = cell.frame.size;
    CGFloat cellWidth = cellSize.width;
    CGFloat cellHeight = cellSize.height;

    CGRect imageFrame = CGRectMake(0, 0, 70, cellHeight);
    UIImageView * image = [[UIImageView alloc] initWithFrame:imageFrame];
    [image setImage:[UIImage imageWithContentsOfFile:@"cyan.jpg"]];

    CGRect nameFrame = CGRectMake(80, 0, cellWidth-80, cellHeight/2);
    UILabel * nameLabel = [[UILabel alloc] initWithFrame:nameFrame];
    nameLabel.text = @"Name: John Doe";

    CGRect jobFrame = CGRectMake(80, 20, cellWidth-80, cellHeight/2);
    UILabel * jobLabel = [[UILabel alloc] initWithFrame:jobFrame];
    jobLabel.text = @"Job: IT-Consultant";

    [cell addSubview:image];
    [cell addSubview:nameLabel];
    [cell addSubview:jobLabel];

    return cell;
}

Ярлыки отображаются отлично, но я не вижуimage.

Любая помощь будет оценена.

Ответы [ 3 ]

6 голосов
/ 01 декабря 2011

imageWithContentsOfFile: ожидает, что путь будет отправлен к нему.Вместо этого используйте imageNamed: или сначала получите путь, используя сначала методы pathForResource ... NSBundle, чтобы получить путь.

Также, если изображение одинаково для каждой ячейки, вы должны добавить представление изображения внутри блока cell = nil, или вы будете добавлять представление снова и снова.

2 голосов
/ 01 декабря 2011

Добавьте его в UITableViewCell contentView вместо этого.

[cell.contentView addSubview:...];
1 голос
/ 01 декабря 2011

Используйте свойство imageView UITableViewCell вместо того, что вы делаете. Чтобы быть более понятным, используйте cell.imageView.image и установите UIImage на это.

Или, если вы хотите, чтобы местоположение изображения было более гибким, добавьте imageView в contentView ячейки. т.е.: [cell.contentView addSubview: yourImageView];

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