UITableView 单元格自动调整 AFNetworking 2.0 提供的一些图像视图的大小
Posted
技术标签:
【中文标题】UITableView 单元格自动调整 AFNetworking 2.0 提供的一些图像视图的大小【英文标题】:UITableView cell autoresizes some image views fed by AFNetworking 2.0 【发布时间】:2013-12-19 09:42:17 【问题描述】:我有一个带有基本单元格的 UITableViewController。在我的tableView: cellForRowAtIndexPath:
方法实现中,我使用AFNetworking 2.0 类别:UIImageView+AFNetworking 设置了我的单元格的.imageView
属性以从Internet 获取数据。
if (p.avatarPhoto)
[cell.imageView setImageWithURL:p.avatarPhoto placeholderImage:[UIImage imageNamed:@"photo_frame.png"]];
当我这样做时,我的表格行会正确生成并显示图像,但是当我突出显示行或滚动时它的大小会发生变化(因此行会重新出现),就像在这个屏幕截图上一样:https://dl.dropboxusercontent.com/u/51630060/ScreenDemo-20131219-102840.mov
当我将图像设置为捆绑的图像,而不是来自网络的图像时,它可以正常工作。
我应该如何设置图像以使其正常工作?
编辑:我用于测试的图像是这个:http://hollywoodvideo.com/wp-content/uploads/2013/08/avatar-whatshisface.jpg。也许是这张图片的纵横比问题?
【问题讨论】:
【参考方案1】:我对 AFNetworking 1 有非常相似的问题,我通过创建对单元格的周引用和调用 setNeedsDisplay 对其进行排序。请看下文,它是 AFNetworking 1 字节,您可以使其适用于 AFN.. 2.o:
__weak UITableViewCell *weakCell = cell;
[cell.imageView setImageWithURLRequest:[[NSURLRequest alloc] initWithURL:p.avatarPhoto]
placeholderImage:[UIImage imageNamed:@"photo_frame.png"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
weakCell.imageView.image = image;
[weakCell setNeedsLayout];
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error)
];
【讨论】:
是的,似乎正在发生的事情是单元格被布置为占位符。当加载的图像设置为新图像时,单元格仍然包含占位符大小而不是新图像大小的布局。以上是关于UITableView 单元格自动调整 AFNetworking 2.0 提供的一些图像视图的大小的主要内容,如果未能解决你的问题,请参考以下文章
自动调整嵌入在 UITableView 中的 UICollectionView 单元格不起作用
在 IOS Objective C 中,如何让单元格自动调整其子 UITableView 的内容大小
自动布局动态大小 uitableview 单元格的最佳方法是啥
如何强制 uitableview 调整单元格的大小(在停用高度约束后)?