我有一个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,那么我就不会发现这个问题了。
有人可以帮忙吗?
答案 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)。
希望有所帮助。