我有一个带有分组单元格的表视图。我希望这个单元格中的一个包含图像。这是我的代码,用于插入图像并使其适合单元格:
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时,我的图像大于单元格的宽度。我怎样才能让它适合细胞?
答案 0 :(得分: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];
答案 1 :(得分:1)
如何向UITableViewCell
添加图片视图取决于您尝试对图片视图执行的操作。如果您想让图像成为单元格内容的一部分,请在创建单元格时添加它。
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;
答案 2 :(得分:0)
以这种方式创建UIImageView
:
UIImageView *imgView = [[UIImageView alloc] initWithImage:image];
imgView.frame = CGRectMake(0, 0, logoCell.frame.size.width, 80);
附注 - 确保每次都不向单元格添加新的UIImageView
。您只想添加一次。滚动时,单元格会被重用。根据您实现代码的方式,您可以轻松地向单元格添加多个图像视图。