2013-05-10 82 views
1

我有一個桌面視圖和單元格中的圖像的問題。 爲了用下面的代碼加載我用AFNetworking圖像:UITableView 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){ 

           } 
    ]; 

此代碼按預期方式工作和實現代碼如下現在看起來像this

但是現在,當我向下滾動,並再次 - 所有圖像混合。他們互換地點或我真的不知道。我不知道如何解決這個問題。 Thats滾動後,它看起來像什麼。

會很高興我可以幫助我。

回答

2

問題是您可能正在使用dequeueReusableCellWithIdentifiercellForRowAtIndexPath方法中創建您的單元格。這意味着當一個新的單元需要顯示在屏幕上時(例如當您滾動時),舊的單元將被用作新的單元。

只要您在方法cellForRowAtIndexPath中明確設置了單元格中的所有內容,這不是問題。看起來你正在設置placeholderImage但這可能不起作用。在做setImageWithURLRequest之前,我可能會設置圖像行。

+1

或者,如果你繼承的UITableViewCell,你可以刪除'prepareForReuse'方法中的圖像,在單元被重用之前被調用。 – 2013-05-10 17:18:45

+0

+1 @AaronBrager – nickchuckwalter 2013-05-11 00:01:04

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){ 

          } 
];