在我的应用程序中,我将使用PSCollectionView,但它不会调用委托方法。我这样做了:
在此操作之后,我需要调用delegate方法来获取PSCollectionViewCell的数量,以定义每个单元格的高度并用图像和名称填充单元格。 我实现了委托方法,但它没有执行它们。我想我的问题是因为当它想要创建和定义单元格的特征时,包含填充单元格的信息的数组仍然是空的。我怎么解决这个问题?
CODE:
- (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);
}
}];
}
任何人都可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:1)
你的问题是代理和数据源是在你设置数组以解决问题之前调用的,你必须在设置数组时重新加载数据:
-(void)setArrayWithData:(NSArray *)arrayWithData{
if(_arrayWithData != arrayWithData){
_arrayWithData = arrayWithData;
}
[_yourCollectionView reloadData];
}
答案 1 :(得分:0)
确保通过执行myCollectionView.delegate = self将集合视图连接到视图控制器;
OR
控制界面构建器中的从collectionview拖动到视图控制器