gpt4 book ai didi

ios - ProgressView 未显示在所有 UICollectionViewCell 中

转载 作者:行者123 更新时间:2023-11-29 03:00:32 25 4
gpt4 key购买 nike

我的问题是 ProgressView 只出现在前 2 个单元格中。我的代码有什么问题?

注意:我的 CollectionView 水平滚动,每个单元格覆盖整个屏幕。我认为这可能与此有关,因为我尝试在同一 View 中显示所有单元格并且它们工作正常。所有 ProgressViews 显示。

编辑代码:

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

static NSString *cellIdentifier = @"Cell";
VestimentaDetailCell *cell = (VestimentaDetailCell *) [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];

cell.progressView.hidden = NO;
[cell.progressView setProgress:0.02];

PFFile *storeLooks = [self.vestimenta objectForKey:[NSString stringWithFormat:@"image_%ld", (long)indexPath.item]];

NSMutableString *precio = [NSMutableString string];
for (NSString* precios in [self.vestimenta objectForKey:[NSString stringWithFormat:@"precios_%ld", (long)indexPath.item]]) {
[precio appendFormat:@"%@\n", precios];}

[storeLooks getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
if (!error && data.length > 0) {

cell.imageFile.image = [UIImage imageWithData:data];

} else {

cell.progressView.hidden = YES;

}

} progressBlock:^(int percentDone) {
float percent = percentDone * 0.02;
[cell.progressView setProgress:percent];
if (percentDone == 100){
cell.progressView.hidden = YES;
} else {
cell.progressView.hidden = NO;
}

}];

return cell;
}

最佳答案

与其从单元格中删除进度 View ,不如简单地setHidden:YES

这样,当单元格被重复使用时,进度 View 将出现,然后您可以setHidden:NO 当您想要开始在该单元格中加载内容时。

在重复使用单元格时,还要注意单元格中的进度 block 。如果单元格被重复使用,请记住取消加载操作,或者确保进度 block 仅在单元格未被重新用于不同数据项时才继续更新它的单元格。


因此,例如,我会将进度设置为 0.,您将在其中显示进度 View ,如下所示:

VestimentaDetailCell *cell = (VestimentaDetailCell *) [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];

cell.progressView.hidden = NO;
[cell.progressView setProgress:0.];

并且因为当数据加载完成时您隐藏了 progressView,所以我将删除 progressBlock 中的这段代码:

  if (percentDone == 100){
cell.progressView.hidden = YES;
} else {
cell.progressView.hidden = NO;
}

关于ios - ProgressView 未显示在所有 UICollectionViewCell 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353134/

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