如何将单元格的值/字符串内容转换为 nsindexpath
Posted
技术标签:
【中文标题】如何将单元格的值/字符串内容转换为 nsindexpath【英文标题】:How to convert value / string content of cell to nsindexpath 【发布时间】:2015-10-22 21:49:53 【问题描述】:我有一个 UICollectionView,其中填充了来自 CoreData 的内容。当视图加载时,我想预选/突出显示一些单元格。
我已经能够使用下面的代码获得预先选择的项目。突出显示并没有像我想要的那样无缝地工作,但我可以让它工作。
- (void)preSelect
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:6 inSection:5];
[self.collectionView selectItemAtIndexPath:indexPath animated:YES scrollPosition:UICollectionViewScrollPositionNone];
if ([[self.collectionView cellForItemAtIndexPath:indexPath] isSelected])
[self.collectionView cellForItemAtIndexPath:indexPath].backgroundColor = [UIColor darkGrayColor];
NSLog(@"selected count %i",[self.collectionView indexPathsForSelectedItems].count);
我不想让预选硬编码。我想做类似的事情:
NSIndexPath = indexPath where [value of cell] isEqual:@"NSString";
或者更好
PFQuery *query = [PFQuery queryWithClassName:@"myClass"];
[query findObjectsInBackgroundWithBlock:^(NSArray *object, NSError *error) NSString *abc = [object valueForKey:@"myKey"];
NSIndexPath = indexPath where cell.text = abc;
【问题讨论】:
不是最优雅的答案,但我基本上可以通过一长串 if 语句来检查每个语句的值。我想要一个更好的答案: 【参考方案1】:如果您以这种方式使用 cellForItemAtIndexPath,那么您的代码将被严重破坏。
单元格只存在于屏幕上的项目,当您滚动并从屏幕上删除项目或出现在屏幕上时,单元格会被重新用于新项目。
如果索引路径不在屏幕上,UIView 方法 cellForItemAtIndexPath 返回 nil。如果您更改单元格的背景颜色,那么当其他项目在屏幕上移动时,它会保持该背景颜色,重新使用您刚刚设置的背景颜色的单元格。调试时很有趣。
修改单元格的地方是在 UIViewController 方法 cellForItemAtIndexPath 的实现中。
【讨论】:
谢谢。我确实注意到它不起作用并且正在发生!仍在寻找一个好的解决方案。你能解释一下你最后一句话的意思吗?这是我触发代码的地方。您是否为此方法建议的特定代码可行?删除它作为可能的答案。以上是关于如何将单元格的值/字符串内容转换为 nsindexpath的主要内容,如果未能解决你的问题,请参考以下文章
Pandas:将 DataFrame 转换为每个单元格的均值和标准差
JavaScript 技术篇 - js读取Excel文档里的内容实例演示,js如何读取excel指定单元格的内容,js将excel的内容转化为json字符串方法