2012-04-10 8 views
0

Wie können wir die Breite des Frames angeben, in dem SectionIndexes angezeigt werden? Ich zeige unten ein Bild an, das den Zustand erklärt, den ich habe.Legen Sie die Breite des SectionIndex auf der rechten Seite von UITableView fest?

Image with UITableView sorted by Index along with it

Ich möchte, die Worte innerhalb des sectionIndex einzuwickeln und es ist möglich, wenn SectionIndex Rahmengröße so befestigt ist, möchte ich die Breite des SectionIndex Rahmen automatisch einzustellen, wie auf der rechten Seite side.SectionIndex Rahmen angezeigt ändert die Größe gemäß zur Wortlänge darin.

schrieb ich den Code das Array von SectionIndexTitle zurückzukehren, wie unten angegeben:

NSMutableArray *array = [[NSMutableArray alloc] init]; 

for (int i = 0; i <[keys count]; i++) { 
    NSString *str = [self.keys objectAtIndex:i]; 
    int length = [str length]; 
    if (length > 9) { 
     str = [NSString stringWithFormat:@"%@..",[str substringToIndex:8]]; 
    } 
     [array addObject:str]; 
} 


NSArray *a =[NSArray arrayWithArray:array]; 
[array release]; 

return a; 

Würde u mir bitte helfen, dies in Bezug auf ...!

Antwort

2

Leider ist das Anpassen des Abschnittsindex mit den öffentlichen APIs nicht möglich.

Sie werden wahrscheinlich eine benutzerdefinierte Abschnittsindexansicht erstellen, wenn diese Funktion für Ihre App so wichtig ist.

1

Siehe diese Antwort:

Custom UITableView section index

Ich denke, es ist wirklich hart ist oder so gut wie unmöglich Abschnittsindex anpassen oder benutzerdefinierten Abschnittsindex erstellen.

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

Hoffe, das hilft.

+0

Danke für den Vorschlag ..! – Warewolf

+0

@Princekumar: Gern geschehen :) –

+0

@Princekumar: Konnten Sie eine Lösung finden? –

0

Ich hatte vor kurzem ein ähnliches Problem und ich hatte nicht die Zeit, einen benutzerdefinierten sectionindex zu integrieren. So modifizierte ich einfach das erste Element in dem Abschnitt Indexliste mit Leerzeichen:

-(NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView 
{ 
    return @[@"  A  ", @"B", @"C", @"D", @"E", @"F"]; 
} 

-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index 
{ 
    if ([title containsString:@"A"]) 
    { 
     title = @"A"; 
    } 
    //Your code here 
} 

Mit dieser Lösung manged ich die Breite des Abschnitts Index zu ändern!

Hoffe, es hilft :)

0

Dies scheint auf iPad und iPhone gut zu funktionieren 5. es in cellForRow verwenden.

let rightOffset: CGFloat = cell.frame.width - cell.contentView.frame.width 
Verwandte Themen