代码之家  ›  专栏  ›  技术社区  ›  Kalle

在UITableViewCell中更改行路径的高度时,图像会“移动”

  •  1
  • Kalle  · 技术社区  · 16 年前

    我有一个不同高度的表视图,定义在heightforrowatinexpath中。由于一些非常奇怪的原因,图像根据高度向右“缩进”;如果高度足够低,则图像被粘贴到单元的左侧,但是随着高度的增加,所述单元的图像相对于其他行向右移动。

    这个简单的例子揭示了这个问题:

    - (CGFloat)tableView:(UITableView *)tableView 
      heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        return (indexPath.row+1) * 50;
    }
    

    // ...
    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

    2 回复  |  直到 16 年前
        1
  •  0
  •   Peter Zich    16 年前

    如果您将自己的UIImageView添加到UITableViewCell中,而不是使用内置的UIImageView,会发生什么?我相信内置的设计是为了增加填充,如果有它的空间,并忽略它,如果没有。

        2
  •  0
  •   Johan Kool    16 年前

    contentMode .

    UIView (一个超类) UIImageView 内容模式 ,它确定当视图的边界矩形更改时,视图如何布局其内容。您可能希望将此属性更改为其他模式,例如 UIImageView视图 它决定如何以及在何处绘制图像。