4

我在我的 iPhone 项目中使用 SDWebImage,并使用它将图像加载到我的表格单元格中。

原来下载的图片150*150。我的占位图片是32*32(需要大小)

第一次,当图像加载时,sdwebimage 会很好地调整下载图像的大小以匹配占位符图像的大小 (32*32)。都好。

但是,当我返回并返回同一页面时,图像会被拉伸并填充整个 cell.imageView 高度。这是正常行为吗?

我需要它始终保留最初的 32*32 大小。你能建议怎么做吗?

编辑:我发现另一个用户面临类似问题的链接(问题未解决)。用户还制作了一个简短的youtube 视频来解释这个问题。

想法?

4

4 回答 4

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];
于 2012-03-06T20:07:36.133 回答
3

tldr:如果您的自定义UITableViewCell子类有一个@property IBOutlet UIImageView*被调用imageView的名称,请将您的名称更改为其他名称(例如customImageView),它将正常工作。阅读其余答案以了解原因

我看到没有人回答这个问题,我浪费了整整一周的时间试图找到解决方案,所以这就是发生在我身上的事情,以及如何防止它发生在你身上(从而解决你的问题)。

我创建了一个CustomTableViewCellwhich extends UITableViewCell

我添加@property (weak, nonatomic) IBOutlet UIImageView *imageView;到我的自定义单元格中。到目前为止一切似乎都很好,对吧?

除非它不是。

UITableViewCell已经有imageView房产了。iOS 7 首先使用您的属性,但是当重用 Cell 时,会使用UITableViewCellimageView,因此会忽略您的所有约束或先前定义的固定大小。

iOS 8 总是使用来自UITableViewCell. 所以问题在那里更明显。以前的 iOS 版本也有不同程度的这个问题,通常会出现非常相似的症状。

解决方案?自己处理属性(添加用于布局视图的代码)或使用不同的名称UITableViewCell.imageView创建自己的属性,您可以使用它在 Storyboard 或 xib 上添加约束(如果您使用自动布局)。

于 2014-10-14T01:51:09.843 回答
0

尝试设置 UIImageView 的正确内容模式

于 2012-02-01T02:37:59.750 回答
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 */ }];
于 2013-08-27T08:56:17.007 回答