桌面视图和单元格中的图像存在问题。 要加载图像,我使用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现在看起来像this
但现在,当我向下滚动,再向上滚动时 - 所有图像都是混合的。他们交换了地方,或者我真的不知道。我不知道如何解决这个问题。 Thats向下滚动后的样子。
我会很高兴你能帮助我。
答案 0 :(得分:2)
问题是您可能正在使用dequeueReusableCellWithIdentifier
在cellForRowAtIndexPath
方法中创建单元格。这意味着当需要在屏幕上显示新单元格时(如滚动时),以前在视图中的旧单元格将用作新单元格。
只要您在方法cellForRowAtIndexPath
中明确设置单元格中的所有内容,这不是问题。看起来您正在设置placeholderImage
,但这可能无法正常工作。我可能会在执行setImageWithURLRequest
之前设置图像行。
答案 1 :(得分: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){
}
];