我在使用Sections设置cellForRowAtIndexPath时遇到问题。如果我只是显示所有“曲目”而不按“主题”分隔部分,那么它可以正常工作。
Track *aTrack = [appDelegate.tracks objectAtIndex:row];
cell.textLabel.text = aTrack.track_title;
我已经设置了我的numberOfSectionsInTableView,numberOfRowsInSection,titleForHeaderInSection。一切都很好。但我真的不知道如何设置cellForRowAtIndexPath。
经过研究之后,最好的方法似乎是使用NSDictionary显示我的细胞...
NSDictionary *dictionary = [sectionTopicArray objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"Tracks"];
NSString *cellValue = [array objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
有人可以给我一些关于如何制作一个MutableArray(sectionTopicArray)的指针,它会包含我所有的词典吗?我可以在脑海中看到以下内容,但只是不知道如何在代码中说出来。
sectionTopicArray
[0] Dictionary 1 with key Tracks
Track1
Track2
Track3
[1] Dictionary 2 with key Tracks
Track4
[2] Dictionary 3 with key Tracks
Track5
Track6
basically I'm thinking...
Section0 = Dictionary1 = Topic1
Section1 = Dictionary2 = Topic2
Section2 = Dictionary3 = Topic3
答案 0 :(得分:0)
我会使用嵌套的数组。
创建DataArray:
NSArray *dataArray = [NSArray arrayWithObjects:
[NSArray arrayWithObjects: // Section 0
track1, // Item 0
track2, // Item 1
track3, // Item 2 (indexpath 0.2)
nil],
[NSArray arrayWithObjects: // Section 1
track4, // Item 0 (indexpath 1.0)
nil],
[NSArray arrayWithObjects: // Section 2
track5, // Item 0
track6, // Item 1 (indexpath 2.1)
nil],
nil];
在cellForRowAtIndexPath中访问对象:
Track *trackAtIndexPath = [[dataArray objectAtIndex:indexpath.section] objectAtIndex:indexpath.row];
你可以用这样的方式创建章节标题:
NSArray *sectionTitles = [NSArray arrayWithObjects:
@"Section 0",
@"Section 1",
@"Section 2",
nil];
应该清楚如何访问它们。