表格视图的索引列表显示点iOS 5+ [英] Indexed list for table view shows dot iOS 5+

查看:281
本文介绍了表格视图的索引列表显示点iOS 5+的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我在表格视图中显示带有索引列表的联系人。我正在显示索引列表如下:

In my application I am displaying contacts in table view with indexed list. I am displaying indexed list as follow:

 static NSString *letters = @"abcdefghijklmnopqrstuvwxyz#";

-(void)getAllUserInfoUsingBlock:(lclResultsArray) block
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
        NSMutableArray *allUserInfoArray = [[NSMutableArray alloc]init];
        NSLog(@"[letters length]:- %d",[letters length]);
        for (int i = 0; i < [letters length]; i++ ) {

            NSMutableDictionary *row = [[NSMutableDictionary alloc] init];

            char currentLetter[2] = { toupper([letters characterAtIndex:i]), '\0'};
            NSString *str=[NSString stringWithCString:currentLetter encoding:NSASCIIStringEncoding];
            NSMutableArray *words = nil;
            NSLog(@"Value of i:- %d:: Letter:- %@",i,str);
            if (i<[letters length]) {
                words = [self getUserInfoByStartingCharOfLastName:str isForEmptyValue:NO];
            }
            else {
                // Get users where name is empty
                words = [self getUserInfoByStartingCharOfLastName:@"" isForEmptyValue:YES];
            }

            NSLog(@"Count for %@ :- %d",str,words.count);
            [row setValue:str forKey:@"sectionTitle"];
            [row setValue:words forKey:@"sectionRows"];
            [allUserInfoArray addObject:row];

        }
        dispatch_async(dispatch_get_main_queue(), ^{
            for (NSDictionary *dict in allUserInfoArray) {
                NSLog(@"Array count:- %d",[[dict objectForKey:@"sectionRows"]count]);
            }
            block(allUserInfoArray,nil);
        });
    });
}

- (NSString *)tableView:(UITableView *)aTableView titleForHeaderInSection:(NSInteger)section 
{
    if (aTableView != self.searchDisplayController.searchResultsTableView){
        NSMutableDictionary *sections=[self.contactsArray objectAtIndex:section];
        NSString * sectionTitle= [sections objectForKey:@"sectionTitle"];
        return sectionTitle;
    }
    return nil;
}

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index 
{
    if (tableView != self.searchDisplayController.searchResultsTableView){
        NSMutableDictionary *sections=[self.contactsArray objectAtIndex:index];
        NSString * sectionTitle= [sections objectForKey:@"sectionTitle"];
        return [self.indices indexOfObject:sectionTitle];
    }
    return 0;
}

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {

    if (tableView != self.searchDisplayController.searchResultsTableView){
        return [self.contactsArray valueForKey:@"sectionTitle"];
    }
    return nil;
}

但它显示如下图所示

尽可能在第一张图片中看到它显示的ACE .... VXZ#它在每个字符后显示交替的点(。)。但是如第二张图片所示,它显示ABC的表格的正确的headet标题.... XYZ#

As you can see in first image its displaying A.C.E .... V.X.Z# Its displaying alternate dots(.) after every character.But as shown in second image its dispalying correct headet title for table from ABC....XYZ#

我的实施有什么问题?

推荐答案

索引列表中字符之间的替代点取决于显示indexedlist的高度。如果我们可以增加tableSize。它将自动显示整个字符。

Alternative dots between characters in indexed list depends upon display height of that indexedlist.if we can increase the tableSize .it will be automatically display whole characters.

这篇关于表格视图的索引列表显示点iOS 5+的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆