1

我对单元格中的表格视图和图像有疑问。要加载图像,我使用 AFNetworking 和以下代码:

    [celle.thumb setImageWithURLRequest:[NSURLRequest requestWithURL:MYIMGLINK]
                       placeholderImage:[UIImage imageNamed:@"Placeholder.png"]
                                success:^(NSURLRequest *request , NSHTTPURLResponse *response , UIImage *image ){

                                    if (request) {
                                        //Fade animation
                                        [UIView transitionWithView:celle.thumb
                                                          duration:0.8f
                                                           options:UIViewAnimationOptionTransitionCrossDissolve
                                                        animations:^{
                                                                [celle.thumb setImage:image];



                                                        } completion:NULL];

                                    }


                                }
                                failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){

                                }
     ];

此代码确实按预期工作,并且 tableview 现在看起来像这样

但是现在,当我向下滚动并再次向上滚动时 - 所有图像都混合在一起。他们交换了位置,或者我真的不知道。而且我不知道如何解决这个问题。就是向下和向上滚动后的样子。

我会很高兴你能帮助我。

4

2 回答 2

2

问题是您可能正在使用dequeueReusableCellWithIdentifier该方法创建您的单元格cellForRowAtIndexPath。这意味着当需要在屏幕上显示一个新单元格时(例如滚动时),以前在视图中的旧单元格将用作新单元格。

只要您在方法中明确设置单元格中的所有内容,这不是问题cellForRowAtIndexPath。看起来您正在设置placeholderImage,但这可能不起作用。我可能会在你做之前设置图像线setImageWithURLRequest

于 2013-05-10T16:16:57.157 回答
0

我有一个类似的问题 - 它与 iOS 重用您现有的单元格有关。因此,您需要做的就是将其设置为 nil,如下所示:

celle.thumb.image = nil;

您的代码块现在应该如下所示:

celle.thumb.image = nil;

[celle.thumb setImageWithURLRequest:[NSURLRequest requestWithURL:MYIMGLINK]
                       placeholderImage:[UIImage imageNamed:@"Placeholder.png"]
                                success:^(NSURLRequest *request , NSHTTPURLResponse *response , UIImage *image ){

                                if (request) {
                                    //Fade animation
                                    [UIView transitionWithView:celle.thumb
                                                      duration:0.8f
                                                       options:UIViewAnimationOptionTransitionCrossDissolve
                                                    animations:^{
                                                            [celle.thumb setImage:image];



                                                    } completion:NULL];

                                }


                            }
                            failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){

                            }
 ];
于 2013-12-16T21:06:31.963 回答