7

我正在尝试设置表索引,但它在右侧显示为白条。我正在使用故事板。有谁知道发生了什么?谢谢

代码:

#pragma mark - Tableview datasource

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections in a tableview
    return self.arrayOfCharacters.count;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Return the height of each cell
    return 55;
}

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    // Return table index
    return [NSArray arrayWithArray: [@"A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|#" componentsSeparatedByString:@"|"]];
}

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    // Match the section titls with the sections
    NSInteger count = 0;

    // Loop through the array of characters
    for (NSString *character in self.arrayOfCharacters) {

        if ([character isEqualToString:title]) {
            return count;
        }
        count ++;
    }
    return 0;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the each section
    return [[self.objectsForCharacters objectForKey:[self.arrayOfCharacters objectAtIndex:section]] count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    // Return the title for each section
    return [NSString stringWithFormat:@"%@", [self.arrayOfCharacters objectAtIndex:section]];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"preplanCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    // Create a pointer to our preplan
    LBPrePlan *preplan = [[self.objectsForCharacters objectForKey:[self.arrayOfCharacters objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];

    cell.textLabel.text = preplan.name;
    cell.detailTextLabel.text = preplan.address;

    return cell;
}
4

2 回答 2

12

发现了我的问题。在 iOS7 中,您可以设置 sectionIndexBackgroundColor。原来它一直在工作。

于 2013-10-25T00:47:41.890 回答
7

您可以使用以下代码更改 ios7 中的 tableview 索引集背景颜色

    [[UITableView appearance] setSectionIndexBackgroundColor:[UIColor clearColor]];
    [[UITableView appearance] setSectionIndexTrackingBackgroundColor:[UIColor lightGrayColor]];
    [[UITableView appearance] setSectionIndexColor:[UIColor darkGrayColor]];
于 2014-02-28T09:24:33.907 回答