我有一个集合视图,其中根据int的数组填充单元格。
创建单元格后,我想通过网络请求检查每个单元格的参数。
目前,我在此方法中为每个单元执行网络请求,并且由于网络不一致而导致在分配参数之前创建单元。
是否有方法在完成布局单元格时运行网络功能(sendGetPar :)?显然,当用户滚动等时,可以重复使用它。
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
BOOL isFocusOn = [_userDefault boolForKey:@"mixFocusOn"];
if (isFocusOn == TRUE) {
CDCChannelStrip *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
NSNumber *setChan = [self.focusChannels objectAtIndex:indexPath.section];
NSInteger chanInt = [setChan intValue] +1;
cell.clipsToBounds = YES;
[cell initData:(chanInt)];
[self.mixMonitorView setChannelsStripToType:(cell)];
[self.mixMonitorView sendGetPar:chanInt];
return cell;
}
答案 0 :(得分:0)
我相信Apple的documentation会有所帮助
可能的方法:
collectionView:didEndDisplayingCell:forItemAtIndexPath:
告诉委托指出已从集合视图中删除指定的单元格。
collectionView:didUpdateFocusInContext:withAnimationCoordinator:
告诉代理人发生了焦点更新。
答案 1 :(得分:0)
Something like this:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
BOOL isFocusOn = [_userDefault boolForKey:@"mixFocusOn"];
if (isFocusOn == TRUE) {
CDCChannelStrip *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
NSInteger chanInt = indexPath.row +1;
cell.clipsToBounds = YES;
[cell initData:(chanInt)];
[self.mixMonitorView setChannelsStripToType:(cell)];
[self.mixMonitorView sendGetPar:chanInt];
return cell;
}
-(void) sendGetPar:(NSInteger)index // you could return the parameter via this method.
{
NSLog(@"Parameter:%ld", (long)index);
}