我正在表格 View 中显示名称的动态列表,并且我正在尝试根据名称的第一个字母将它们分成多个部分...
我创建了一个按字母顺序排列的数组
charIndex = [[NSMutableArray alloc] init];
for(int i=0; i<[appDelegate.children count]-1; i++)
{
// get the person
Child *aChild = [appDelegate.children objectAtIndex:i];
// get the first letter of the first name
NSString *firstLetter = [aChild.firstName substringToIndex:1];
NSLog(@"first letter: %@", firstLetter);
// if the index doesn't contain the letter
if(![charIndex containsObject:firstLetter])
{
// then add it to the index
NSLog(@"adding: %@", firstLetter);
[charIndex addObject:firstLetter];
}
}
我已经设置了部分和标题的数量
- (NSInteger)numberOfSectionsInTableViewUITableView *)tableView
{
// set the number of sections in the table to match the number of first letters
return [charIndex count];
}
- (NSString *)tableViewUITableView *)tableView titleForHeaderInSectionNSInteger)section
{
// set the section title to the matching letter
return [charIndex objectAtIndex:section];
}
但我对应该包含的内容有疑问
- (NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section
{
}
Best Answer-推荐答案 strong>
您可以添加一个字典来记录共享相同首字母的人数。快速未经测试的代码:
charIndex = [[NSMutableArray alloc] init];
charCount = [[NSMutableDictionary alloc] init];
for(int i=0; i<[appDelegate.children count]-1; i++)
{
// get the person
Child *aChild = [appDelegate.children objectAtIndex:i];
// get the first letter of the first name
NSString *firstLetter = [aChild.firstName substringToIndex:1];
NSLog(@"first letter: %@", firstLetter);
// if the index doesn't contain the letter
if(![charIndex containsObject:firstLetter])
{
// then add it to the index
NSLog(@"adding: %@", firstLetter);
[charIndex addObject:firstLetter];
[charCount setObject:[NSNumber numberWithInt:1] forKey:firstLetter];
}
[charCount setObject:[NSNumber numberWithInt:[[charCount objectForKey:firstLetter] intValue] + 1] forKey:firstLetter];
}
然后在:
- (NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section
{
[charCount objectForKey:[charIndex objectAtIndex:section]];
}
关于iOS 表格 View : Grouping rows into sections,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/9113068/
|