gpt4 book ai didi

iphone - iOS SDWebImage 在 UITableViewCell 中淡入淡出

转载 作者:技术小花猫 更新时间:2023-10-29 10:44:08 24 4
gpt4 key购买 nike

我一直在我的 iOS 应用程序上使用 SDWebImage(ver3.0),我想在它像 Path2.0、Pinterest 和 Viddy 一样加载后淡入 uitableviewcell 的新图像。感谢 iOS SDWebImage fade in new image ,淡入本身正在工作。但是,当滚动 tableview 时,单元格中的图像会再次加载。这可能是由单元格的重用引起的。

这是我的代码。

[cell.userImageView setImageWithURL:url
placeholderImage:placeholderImage
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if (!error) {
cell.userImageView.alpha = 0.0;
[UIView transitionWithView:cell.userImageView
duration:1.0
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
[cell.userImageView setImage:image];
cell.userImageView.alpha = 1.0;
} completion:NULL];
}
}];

最佳答案

感谢@OzBoz 指出正确的解决方案是确认图像是否从网络中检索(未缓存),如果是,则执行动画:

[cell.userImageView setImageWithURL:url
placeholderImage:placeholderImage
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if (image && cacheType == SDImageCacheTypeNone)
{
cell.userImageView.alpha = 0.0;
[UIView animateWithDuration:1.0
animations:^{
cell.userImageView.alpha = 1.0;
}];
}
}];

如果您担心单元格不再可见),您还可以使用:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

如果该行仍然可见,此方法(不要与名称相似的 UITableViewDataSource 方法混淆)将返回非 nil。这在大多数 UITableViewCell 异步图像检索过程中非常重要,但事实证明 setImageWithURL 将取消任何先前的图像检索过程,因此在以下情况下检查它不太重要使用 SDImageWeb

关于iphone - iOS SDWebImage 在 UITableViewCell 中淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com