uitableviewcell imageview在选中时调整大小(仅水平)

时间:2012-08-26 00:49:38

标签: ios uitableview imageview sdwebimage

我有一个uitableviewcell,使用ios中提供的默认uitableview单元格 在cell.imageView中,其图像通过图像的url填充 像这样

[cell.imageView setImageWithURL:[NSURL URLWithString:movie.show_image_url] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

它最初加载一切都很好,但在模拟器中,当我选择一行时,我可以看到单元格中的元素(除了cheveron)向左移动,这使得imageview的宽度显得更短

我不知道为什么,如果我用应用程序中存储的静态图像替换imageview,比如placeholder.png,那么我就不会发现这个问题了。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:8)

我也遇到了这个问题,并且发现了一个非常简单的解决方案 - 覆盖UITableViewCell类中的-layoutSubViews(如果还没有完成,则继承UITableViewCell)。

有关详细信息,请参阅SDWebImage fixed width cell images(在仔细阅读SDWebImage github repo时找到)。

本文提出的技术涉及控制UIImageView,以及IB中可用的标准UITableViewCell中的两个UILabel几何。我正在使用自定义单元格,并且能够通过简单地覆盖UIImageView的布局来解决问题:

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.thumbnailView.frame = CGRectMake(
                                          0,
                                          0,
                                          THUMBNAIL_WIDTH,
                                          THUMBNAIL_HEIGHT
                                          );

}

(请注意,THUMBNAIL_WIDTH和THUMBNAIL_HEIGHT只是宏,都设置为71)。

希望有所帮助。