如何在UITableviewCell上使用动态高度与从Afnetworking获取的图像

时间:2014-04-03 19:08:15

标签: ios objective-c uitableview uiimageview

我编写了一个应用程序,可以从Facebook获取图像并在Custom UITableViewCells中显示它们。

在单元格中有两个标签,一个小图片和一个较大的图片,通过AFNetworking从Facebook获取,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
.....
[cell.pic setImageWithURLRequest:[NSURLRequest requestWithURL:url] placeholderImage:[UIImage imageNamed:@"placeholder"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
                images[indexPath.row] = [NSString stringWithFormat:@"%f",image.size.height];
                [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
            } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

            }];

图像也会添加到决定高度的数组中。 之后重新加载tableview以应用新的高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
                return [images[indexPath.row] floatValue] + 80;

滚动工作完美无缺,图像在向下滚动时按预期加载,但只要向上滚动就会发生这种情况:

错误:

http://i.imgur.com/WY8vnWC.png

正常:

http://i.imgur.com/Lkrs4MF.png

有谁知道为什么会这样?

谢谢:)

请注意,此应用仅用于测试目的

0 个答案:

没有答案