2010-04-15 61 views

回答

12

它看起來並不像標準索引視圖是可定製的。

在我的應用程序中,我只是創建了自定義索引視圖,而不是標準視圖。基本上你所需要做的就是在該視圖中跟蹤觸摸位置並相應地滾動UITableView。您可能還需要添加一些視覺效果 - 觸摸時更改視圖的背景顏色,並突出顯示當前部分的標題。

+0

你好,你將能夠提供爲您創建的索引視圖中的代碼示例代碼段? – 2017-08-10 01:06:57

1

https://github.com/Hyabusa/CMIndexBar

使用這個插件從Hyabusa。 爲UITableView的指數簡單replacment允許的顏色

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]; 

委派設置

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

是否可以將UITableViewIndexSearch圖標添加到CMIndexBar? – Chris 2014-03-04 13:20:51

0
tableView.tintColor = UIColor.redColor(); 

會爲你做它

1

斯威夫特版本:

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

要自定義索引視圖高度(僅UITableViewStylePlain風格):

tableView.sectionIndexMinimumDisplayRowCount = 15 
0

其實沒有可用做蘋果官方。如果你這樣做,Apple可能會拒絕你的應用程序。如果你只是想自定義indexBar,那麼下面的庫可能會幫助你。

您可以通過斯威夫特(的iOS 8+),您可以自定義使用自定義庫CollectionIndexTools。

https://github.com/ReverseScale/CollectionIndexTools

下面是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 
    }()