我有一个简单的UICollectionView
启动并运行,因此您可以选择一个单元格然后保存您的选择。但猜猜怎么了?我有问题!
在屏幕上滚动选定的单元格并重新打开后,它将失去其选择。表面上非常简单。我怎么能阻止这个?
这与细胞再利用有关吗?这是我的代码:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"AircraftConfigurationCell";
SLAircraftConfigurationCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
//Customise cell...
return cell;
}
答案 0 :(得分:1)
您是否有可能来自包含数据模型的数组的数据源?
如果是这样,那么你将有一个良好的开端,并且可以立即解决这种选择间歇性行为!
在您的数据模型.h
文件中创建一个property
,如此property (nonatomic, retain) BOOL selectedState;
,并在.m
文件中初始化selectedState
至FALSE
数据对象的init方法。
在UICollectionView的didSelect
方法中完成后,将dataObject的selectedState
设置为与该单元/项索引关联的YES
。
然后最后在您的cellForItemAtIndexPath
方法中,确保对要为selectedState
属性设置cellItem的dataModel实例执行if检查。如果设置为“NO”,则将selectionStyle设置为none,否则将其设置为yes。
我以前在滚动时选择会丢失之前遇到问题,但是现在它被管理并且结果是持久的。