使用自定义单元格searchdisplaycontroller添加节和索引列表

时间:2015-03-17 22:06:51

标签: ios objective-c uitableview uisearchdisplaycontroller

我创建了一个UITableView的自定义单元格&存储的名称,否,密码到这些单元格中。

这是我的数组代码: -

for (int i =0; i<[tempArr count]; i++)
    {
        NSString *rawData = [tempArr objectAtIndex:i];

        if (rawData !=nil)
        {
            Persons *newPerson = [[Persons alloc]init];

            NSArray *data = [rawData componentsSeparatedByString:@"\t"];

            newPerson.name = [NSString stringWithFormat:@"%@",[data objectAtIndex:0]];
            newPerson.no = [[data objectAtIndex:1] integerValue];
            newPerson.pincode = [[data objectAtIndex:2] integerValue];

            [allPersons addObject:newPerson];
        }
    }

这是我的 Customcell.h

@interface Customcell : UITableViewCell

@property(weak) Persons* person;

@end

UITableView Datasrouce方法: -

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    Customcell *cell = [tblStations dequeueReusableCellWithIdentifier:@"personCell"];

    if (tableView == self.searchDisplayController.searchResultsTableView)
    {
        cell.person = filteredContentList[indexPath.row];
        [cell.textLabel setText:cell.person.name];
    }
    else
    {
        cell.person = allPersons[indexPath.row];
        [cell.textLabel setText:cell.person.name];
    }

    return cell;
}

我如何创建Section&amp;所有名称的索引列表从A到Z&amp;通过cell.textLabel.text?

给出标题

I am following This Tutorial但它有静态键&amp;名称已添加到NSDictionaryNSArray

在我的例子中,我不知道在数组中有多少以同一个字母开头的名字。我也使用UISearchDisplayController作为搜索人名。

我想添加多个部分&amp;这些部分的标题是数组中的名称或动态的cell.textLabel.text。

我不知道UISearchDisplayController这些部分&amp;索引列表将显示在UISearchDisplayController中,所以我不希望这些部分&amp;搜索时的索引列表。

1 个答案:

答案 0 :(得分:0)

您需要花费更多时间来尝试更清楚地提出问题。

包含必要的UITableView数据源和委托方法的自定义实现...

请注意我的假设您的变量allPersonsNSMutableArray

注意这些不包括在搜索结果中的数据集!

NSInteger ...

中的部分数量返回UITableView
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    NSSet *setData = nil;
    NSInteger integerData = 0;

    setData = [NSSet setWithArray:allPersons];
    integerData = [setData count];

    return integerData;
}

更新

为部分标题标题返回NSString ...

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    NSOrderedSet *setData = nil;
    NSString *stringData = nil;

    setData = [NSOrderedSet orderedSetWithArray:allPersons];
    stringData = [[setData allObjects] componentsJoinedByString:@" "];

    return stringData;      
}

...如果我有时间,还有其他人......