gpt4 book ai didi

ios - PSCollectionView 调用委托(delegate)

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

在我的应用程序中,我将使用 PSCollectionView,但它不会调用委托(delegate)方法。我是这样做的:

  1. 我读取了一个 JSON 文件
  2. 我解析此 JSON 以获取名称和图像 url
  3. 我将设备连接到图像网址,以使用您在本问题末尾找到的代码获取宽度和高度

在此操作之后,我需要调用委托(delegate)方法来获取 PSCollectionViewCell 的数量,定义每个单元格的高度并用图像和名称填充单元格。我实现了委托(delegate)方法,但它不执行它们。我想我的问题是因为当它想要创建和定义单元格的特征时,包含填充单元格信息的数组仍然是空的。我该如何解决这个问题?

代码:

- (void) loadImageFromWeb:(NSString *)urlImg forName:(NSString*)name {
NSURL* url = [NSURL URLWithString:urlImg];
//NSURLRequest* request = [NSURLRequest requestWithURL:url];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

NSString *authCredentials =@"reply:reply";
NSString *authValue = [NSString stringWithFormat:@"Basic %@",[authCredentials base64EncodedStringWithWrapWidth:0]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];

[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse * response,
NSData * data,
NSError * error) {
if (!error){
image = [[UIImage alloc] initWithData:data];
imageWidth = image.size.width;
imageHeight = image.size.height;
imgWidth = [NSString stringWithFormat:@"%f", imageWidth];
imgHeight = [NSString stringWithFormat:@"%f", imageHeight];
self.dictWithDataForPSCollectionView = @{@"title": name,
@"width": imgWidth,
@"height": imgHeight};
[self.arrayWithData addObject:self.dictWithDataForPSCollectionView];
NSLog(@"DATA ARRAY: %@", self.arrayWithData);
} else {
NSLog(@"ERRORE: %@", error);
}

}];
}

谁能帮我解决这个问题吗?谢谢!

最佳答案

您的问题是在设置数组之前调用委托(delegate)和数据源来解决您的问题,当您像这样设置数组时必须重新加载数据:

-(void)setArrayWithData:(NSArray *)arrayWithData{

if(_arrayWithData != arrayWithData){
_arrayWithData = arrayWithData;
}

[_yourCollectionView reloadData];

}

关于ios - PSCollectionView 调用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19907566/

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