Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UICollectionViewCell在滚动时可见_Ios_Objective C_Uicollectionview_Uicollectionviewcell - Fatal编程技术网

Ios UICollectionViewCell在滚动时可见

Ios UICollectionViewCell在滚动时可见,ios,objective-c,uicollectionview,uicollectionviewcell,Ios,Objective C,Uicollectionview,Uicollectionviewcell,我有一个UICollectionView,其中包含七个UICollectionViewCells,它们是使用来自plist文件的信息构建的。当我启动应用程序时,只有四个UICollectionViewCell可见,直到我开始向下滚动-这使得violettUICollectionViewCell可见(请参见屏幕截图中的)。我的问题是,如何在应用程序启动时显示第四个(violett)UICollectionViewCell 在-(UICollectionViewCell*)collectionVie

我有一个
UICollectionView
,其中包含七个
UICollectionViewCells
,它们是使用来自plist文件的信息构建的。当我启动应用程序时,只有四个
UICollectionViewCell
可见,直到我开始向下滚动-这使得violett
UICollectionViewCell
可见(请参见屏幕截图中的)。我的问题是,如何在应用程序启动时显示第四个(violett)
UICollectionViewCell

-(UICollectionViewCell*)collectionView:(UICollectionView*)cv cellForItemAtIndexPath:(NSIndexPath*)indexPath中
我正在构建和设置单元格:

CategoryCollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:catCellID forIndexPath:indexPath];

NSString *plist = [[NSBundle mainBundle] pathForResource:@"mainCategories" ofType:@"plist"];
NSArray *plistArray = [NSArray arrayWithContentsOfFile:plist];
NSDictionary *cat = [plistArray objectAtIndex:indexPath.item];

CGFloat red = [[cat objectForKey:@"color_red"] doubleValue];
CGFloat green = [[cat objectForKey:@"color_green"] doubleValue];
CGFloat blue = [[cat objectForKey:@"color_blue"] doubleValue];
CGFloat alpha = [[cat objectForKey:@"color_alpha"] doubleValue];

UIColor *color = [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:1];
[cell setBackgroundColor:color];
cell.label_CategoryName = [cat objectForKey:@"text"];
cell.image_CategoryIcon.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.%@",[cat objectForKey:@"image"], kImageExt]];

return cell;

谢谢大家!

以增量方式向下移动集合视图的内容插入,每次移动1点,直到它开始按您希望的方式运行

[_collectionView setContentInset:UIEdgeInsetsMake(0, 10, 0, 0)];
CellForRowatinex被多次激发,下面的代码

NSString *plist = [[NSBundle mainBundle] pathForResource:@"mainCategories" ofType:@"plist"];
NSArray *plistArray = [NSArray arrayWithContentsOfFile:plist];
NSDictionary *cat = [plistArray objectAtIndex:indexPath.item];

每次都在内存中构建一个全新的阵列实例。这是非常低效的。考虑实例化一次数组,可能是在属性或viewDidLoad中延迟实例化。

我不明白-您希望紫色单元格与蓝色单元格一起可见,还是希望初始滚动位置使紫色单元格可见?如第一张图所示,黄色单元格后面有一个空格-如果我开始滚动,这就是violett单元格出现的地方。嗯,奇怪。从截图上看不明显。当你用手指开始滚动时,它会神奇地出现吗?很抱歉造成混淆-刚刚更新了屏幕截图!是的,一旦我开始滚动,violett单元格就会出现,一切正常。正常工作-谢谢!构建阵列只是出于测试目的:-)这是一个很好的技巧,对我来说也很好