gpt4 book ai didi

ios - 在滚动之前更新 UICollectionViewCell?

转载 作者:行者123 更新时间:2023-11-29 12:10:33 30 4
gpt4 key购买 nike

我在 UITableViewCell 中有一个有效的 UICollectionViewCell。我正在使用 HWViewPager ,因此 collectionview 单元格从左向右移动。不幸的是,直到用户向左或向右滚动时,数据才会更新。填充单元格的内容是从 json 中获取的,所以我认为这与某些事情有关,但我不确定是什么。我将所有内容都加载到 awakeFromNib 中。

- (void)awakeFromNib {
] videoArray = [[NSMutableArray alloc] init];
[self getDisco];


}

getDisco 是一个空函数。

- (void)getDisco
{

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {



videoArray = [NSMutableArray arrayWithArray:[responseObject valueForKey:@"releases"]];


// NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];



}

现在,问题出在哪里。

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


if (indexPath.item < [videoArray count]){
DiscoCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionCell2" forIndexPath:indexPath];
NSDictionary *shot = [videoArray objectAtIndex:[indexPath row]];
cell.label2.text = [shot objectForKey:@"title"];
return cell;
return nil;
}else{

DiscoCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionCell2" forIndexPath:indexPath];
cell.label2.text = [NSString stringWithFormat:@"Cell %d", indexPath.row];

return cell;
}


}

如果没有 if/else 语句,viewcontroller 就会完全崩溃。有了它,在用户滚动之前没有任何更新。我的问题是如何为用户预加载所有内容而不会崩溃?请保持 UICollectionViewCelltableviewcell 中。

最佳答案

你应该在完成请求后重新加载 collectionView:

- (void)getDisco
{

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://musicbrainz.org/ws/2/release/?query=arid:e0140a67-e4d1-4f13-8a01-364355bee46e%20AND%20primarytype:single&fmt=json&limit=100" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {



videoArray = [NSMutableArray arrayWithArray:[responseObject valueForKey:@"releases"]];


// NSLog(@"JSON: %@", responseObject);
[collectionView reloadData];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];



}

关于ios - 在滚动之前更新 UICollectionViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557912/

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