2010-04-15 11 views

risposta

12

Non sembra come la vista indice standard è personalizzabile.

Nella mia applicazione ho appena creato la vista indice personalizzata invece di quella standard. Fondamentalmente tutto ciò che devi fare qui è tracciare la posizione touch in quella vista e scorrere di conseguenza UITableView. Potrebbe anche essere necessario aggiungere alcuni effetti visivi - cambiare il colore di sfondo della vista al tocco e evidenziare il titolo della sezione corrente.

+0

Ciao, sareste in grado di fornire il codice per la vista indice è stato creato? –

1

https://github.com/Hyabusa/CMIndexBar

usare questo plugin da Hyabusa. replacment semplice per l'indice UITableView che consente l'impostazione di colori

CMIndexBar *indexBar = [[CMIndexBar alloc] initWithFrame:CGRectMake(self.view.frame.size.width-35, 10.0, 28.0, self.view.frame.size.height-20)]; 
[indexBar setIndexes:[NSMutableArray arrayWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G", nil]]; 
[self.view addSubview:indexBar]; 
[indexBar release]; 

delegato

- (void)indexSelectionDidChange:(CMIndexBar *)IndexBar:(int)index:(NSString*)title; 
+0

È possibile aggiungere l'icona UITableViewIndexSearch a CMIndexBar? – Chris

0
tableView.tintColor = UIColor.redColor(); 

lo farà per voi

1

versione Swift:

tableView.sectionIndexBackgroundColor = UIColor.clearColor() //iOS7+ 
tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor() //iOS6+ 
tableView.sectionIndexColor = UIColor.redColor() //iOS6+ 

Per personalizzare l'altezza vista indice (solo UITableViewStylePlain stile):

tableView.sectionIndexMinimumDisplayRowCount = 15 
0

In realtà non c'è di Apple ufficiale disponibile a farlo. E Apple potrebbe rifiutare la tua app se lo fai. Se si desidera personalizzare indexBar, la libreria di seguito potrebbe aiutarti.

È possibile utilizzare la raccolta personalizzata CollectionIndexTools di Swift (iOS 8+), che è possibile personalizzare.

https://github.com/ReverseScale/CollectionIndexTools

Ecco frammento di esempio per CollectionIndexTools

lazy var collectionViewIndex: CollectionViewIndex = { 
     let collectionViewIndex = CollectionViewIndex() 
     collectionViewIndex.indexTitles = ["c", "v", "t", "m", "n", "w", "e", "r", "t", "y", "u", "i", "o", "p", "h", "d", "c", "b", "q"] 
     collectionViewIndex.addTarget(self, action: #selector(FakeCollectionViewController.selectedIndexDidChange(_:)), for: .valueChanged) 
     collectionViewIndex.translatesAutoresizingMaskIntoConstraints = false 
     return collectionViewIndex 
    }() 
Problemi correlati