2013-10-25 32 views
7

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

代码:

#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; 
} 

回答

11

找到了我的问题。使用iOS7,您可以设置sectionIndexBackgroundColor。原来它一直在运转。

6

您可以用下面的代码

[[UITableView appearance] setSectionIndexBackgroundColor:[UIColor clearColor]]; 
    [[UITableView appearance] setSectionIndexTrackingBackgroundColor:[UIColor lightGrayColor]]; 
    [[UITableView appearance] setSectionIndexColor:[UIColor darkGrayColor]]; 
改变ios7的实现代码如下索引集的背景颜色