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

use*_*587 2 uitableview imageview ios sdwebimage

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

[cell.imageView setImageWithURL:[NSURL URLWithString:movie.show_image_url] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
Run Code Online (Sandbox Code Playgroud)

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

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

有人可以帮忙吗?

Cor*_*ton 8

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

有关详细信息,请参阅SDWebImage固定宽度单元格图像(在浏览SDWebImage github repo时找到).

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

希望有所帮助.