我有一个不同高度的表视图,如heightForRowAtIndexPath中所定义。出于一些非常奇怪的原因,图像根据高度“缩进”到右边;如果高度足够低,则图像粘在单元格的左侧,但随着高度的增加,所述单元格的图像与其他行相比向右移动。
这样做的结果是一张看起来非常糟糕的列表,图片根据每一行的高度以锯齿形图案布置。
这个简单的例子揭示了这个问题:
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return (indexPath.row+1) * 50;
}
每个单元格都设置(简化)为“Subtitle”样式单元格,其中包含:
// ...
cell.textLabel.text = @"foo";
cell.detailTextLabel.text = @"bar";
cell.imageView.backgroundColor = [UIColor redColor]; // for debugging; i have images with transparent bg
cell.imageView.image = anImageThatIs55x50pixelsBig;
return cell;
有什么想法吗?我的脑袋里充满了爱情之情。
编辑:上传了一个显示此内容的屏幕。 “图像”只是屏幕的一个小区域的屏幕截图,它看起来有点奇怪,但你得到了我确定的图片:http://img28.imageshack.us/img28/549/screenshot20100311at172.png
答案 0 :(得分:0)
潜在原因可能是contentMode
。
UIView
(UIImageView
的超类)定义属性contentMode
,它确定视图在其边界矩形更改时如何布置其内容。您可能希望将此属性更改为其他模式,如UIImageView
的情况,它会确定图像的绘制方式和位置。
答案 1 :(得分:0)
如果您将自己的UIImageView添加到UITableViewCell而不是使用内置的UIImageView会发生什么?我相信内置的一个用于添加填充(如果有空间),如果没有则忽略它。