我在我的iPhone项目中使用SDWebImage,并使用它将图像加载到我的表格单元格。
原始下载的图像150 * 150。 我的占位符图片是32 * 32(所需大小)
第一次,当图像加载时,sdwebimage可以很好地重新调整下载图像的大小以匹配占位符图像的大小(32 * 32)。都好。
然而,当我向后导航然后回到同一页面时,图像会被拉伸并填充整个cell.imageView高度。这是正常行为吗?
我需要它始终保持最初的32 * 32大小。你能建议怎么做吗?
编辑:我发现this link其他用户面临类似问题(问题打开)。用户还做了一个简短的youtube video来解释这个问题。
思想?
答案 0 :(得分:3)
尝试使用cellForRowAtIndexPath:
中的特定大小 UIImageView *addImage = [[UIImageView alloc] init];
[addImage setImageWithURL:[NSURL URLWithString:yourCellImageURL] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
[addImage setFrame:CGRectMake(7, 3, 78, 57)];
[cell.contentView addSubview:addImage];
[cell setIndentationLevel:8];
答案 1 :(得分:3)
tldr :如果您的自定义UITableViewCell
子类有一个名为@property
的{{1}} IBOutlet UIImageView*
,将您的名称更改为其他名称(例如imageView
),它将正常工作。阅读其余答案以了解原因
我看到没有人回答这个问题,我浪费了整整一周时间试图找到解决方案,所以这就是发生在我身上的事情,以及如何防止它发生在你身上(从而解决你的问题)。
我创建了customImageView
,扩展了CustomTableViewCell
。
我将UITableViewCell
添加到我的自定义单元格中。
到目前为止,一切似乎都很好,对吗?
除非不是。
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
已有UITableViewCell
属性。 iOS 7首先使用您的属性,但是当重用Cell时,会使用imageView
的 imageView ,因此会忽略所有约束或先前定义的固定大小。
iOS 8始终使用UITableViewCell
中的图片。所以问题在那里更明显。以前的iOS版本也有不同程度的这个问题,通常会出现非常相似的症状。
解决方案?要么自己处理属性UITableViewCell
(添加用于布置视图的代码),要么使用不同的名称创建自己的属性,您可以使用该属性添加约束(如果您是在故事板或xib上使用自动布局。
答案 2 :(得分:0)
尝试设置UIImageView的正确内容模式
答案 3 :(得分:0)
如果要在SDWebImage中更改图像大小。 使用此电话。
// Here we use the new provided setImageWithURL: method to load the web image
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) { /*here you can change size of image */ }];