1

我有一个带有分组单元格的表格视图。我希望这个单元格中的一个包含图像。这是我插入图像并使其适合单元格的代码:

             logoCell = [tableView dequeueReusableCellWithIdentifier:LogoCellIdentifier];
             if (logoCell == nil) {
                 logoCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LogoCellIdentifier];
             }

             UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)];
             [imgView setImage:image];

             [logoCell.contentView addSubview:imgView];

但是当 tableView 显示时,我的图像大于单元格的宽度。我怎样才能使它适合细胞?

4

3 回答 3

2

将图像添加为 tableViewCell 的背景颜色,您将获得漂亮的圆角。否则,分组的单元格不会掩盖图像。您还需要设置 UIImageView 的 contentMode 以便它将所有内容缩放到单元格中。

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)];
imgView.contentMode = UIViewContentModeScaleAspectFit;
cell.backgroundColor = [UIColor colorWithPatternImage:imgView.image];
于 2013-05-17T20:43:13.323 回答
1

如何将图像视图添加到UITableViewCells 取决于您尝试对图像视图执行的操作。如果您想让图像成为单元格内容的一部分,请在创建单元格时添加它。

logoCell = [tableView dequeueReusableCellWithIdentifier:LogoCellIdentifier];
if (logoCell == nil) {
    logoCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LogoCellIdentifier];

    // ADD IMAGEVIEW ONLY WHEN CREATING CELL
    UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)];
    [logoCell.contentView addSubview:imgView];

    // DONT ALLOW IMAGE OVERFLOW
    imgView.clipsToBounds = YES;
}

// SET YOUR IMAGE EVERY TIME
[imgView setImage:image];

如果您尝试将其设置为背景视图,则应将单元格的backgroundView属性设置为tableView:willDisplayCell:forRowAtIndexPath. 确保图像视图与单元格大小相同。

UIImageView *imgView = [[UIImageView alloc] initWithFrame: cell.bounds];
imgView.image = image;
cell.backgroundView = imgView;
于 2013-05-17T21:02:19.010 回答
0

UIImageView以这种方式创建:

UIImageView *imgView = [[UIImageView alloc] initWithImage:image];
imgView.frame = CGRectMake(0, 0, logoCell.frame.size.width, 80);

旁注 - 确保您不是UIImageView每次都向单元格添加新的。您只想添加一次。滚动时,单元格会被重复使用。根据您实现代码的方式,您可以轻松地将多个图像视图添加到单元格。

于 2013-05-17T20:56:52.057 回答