在我的应用程序中,我在带有索引列表的表视图中显示联系人。我显示索引列表如下:
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;
}
但它显示如下图所示
正如您在第一张图片中看到的,它显示 A.C.E .... V.X.Z# 它在每个字符后显示交替点 (.)。但如第二张图片所示,它显示 ABC 表格的正确标题标题....XYZ#
我的实施有什么问题吗?
索引列表中字符之间的替代点取决于该索引列表的显示高度。如果我们可以增加 tableSize 。它将自动显示整个字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)