当使用UICollectionView时,我很困惑于获得indexPath
方法的didSelectItemAtIndexPath
值。
我在didSelectItemAtIndexPath
方法中使用以下代码行:
//FileList is an NSArray of files from the Documents Folder within my app.
//This line gets the indexPath of the selected item and finds the same index in the Array
NSString *selectedItem = [NSString stringWithFormat:@"%@",[FileList objectAtIndex:indexPath.item]];
//Now the selected file name is displayed using NSLog
NSLog(@"Selected File: %@", selectedItem);
问题在于 indexPath始终返回0 (请参见下面的代码),结果只有FileList NSArray中的第一项才被选中。
我尝试了不同的参数,例如
indexPath.row
indexPath.item
indexPath
所有这些都在以下NSLog语句中返回值0:
NSLog(@"index path: %d", indexPath.item); //I also tried indexPath.row here
也许我只是格式化了NSString的格式不正确,但是我不认为这是事实,因为没有警告,并且我尝试在其他地方以不同的格式进行格式化。
为什么indexPath总是返回0?
任何帮助,将不胜感激!谢谢!
最佳答案
冒着明显的风险,请确保您的代码在didSelectItemAtIndexPath
方法中,而不是在didDeselectItemAtIndexPath
中。在后一种方法中,对于给定的触摸事件,您将获得非常不同的indexPath
值,并且很容易用Xcode的代码完成插入错误的ojit_code值。