这个问题一直困扰着我一个月而且我一直拒绝发布它,但我不能再坚持了。这是正在发生的事情:
我有一个UITableViewCell
s的应用,全部初始化为UITableViewCellStyleDefault
。对于每一个,我使用优秀的SDWebImage包设置图像视图的图像,该包扩展了UIImageView以获得[UIImageView setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)image]的方法。
问题是在tableView上图像显示的范围比它们应该更窄,但由于某种原因选择一行使其大小正确。所以在屏幕上滚动行,然后在屏幕上滚动,然后在屏幕外滚动。
我应该使用什么方法强制细胞重绘?我发现了一些相互矛盾的想法,到目前为止,它们都没有奏效。我觉得UITableView对UITableViewCell的简单调用我错过了。另外,我在哪里拨打这个电话?我在cellForRowAtIndexPath
和willDisplayCell
尝试了来电。
感谢您的帮助!
SDWebImage:https://github.com/rs/SDWebImage
答案 0 :(得分:0)
我解决了这个问题 - 我不得不让我的SDWebImage
占位符图像与我正在尝试加载的图像具有相同的宽高比。由于我的服务器强制我的所有图像都是95x95,这是一个相对容易的修复;我只是将我的placeholder.png
更新为95x95(而不是一些奇怪的尺寸,如92x132)
答案 1 :(得分:0)
[[cell imageView] setContentMode:UIViewContentModeScaleAspectFit];
此行使imageview以原始分辨率显示图像,但符合图像视图大小。
主要的缺点是,如果你有不同尺寸的图像,那么每张图片都会显示不同的尺寸....它应该看起来不太好......