Настройка индексов раздела в UITableView в приложении iphone - PullRequest
11 голосов
/ 15 апреля 2010

Ответы [ 5 ]

12 голосов
/ 15 апреля 2010

Не похоже, что стандартное представление индекса настраивается.

В моем приложении я просто создал собственный индексный вид вместо стандартного. По сути, все, что вам нужно сделать, это отслеживать положение касания в этом представлении и соответственно прокручивать UITableView. Вам также может понадобиться добавить некоторые визуальные эффекты - изменить цвет фона представления на ощупь и выделить заголовок текущего раздела.

1 голос
/ 28 октября 2015

Swift версия:

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

Чтобы настроить высоту представления индекса (только стиль UITableViewStylePlain):

tableView.sectionIndexMinimumDisplayRowCount = 15
1 голос
/ 06 февраля 2013

https://github.com/Hyabusa/CMIndexBar

Используйте этот плагин от Hyabusa. Простая замена для индекса UITableView, который позволяет устанавливать цвета

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 голосов
/ 13 июля 2017

На самом деле, для этого нет официального Apple. И Apple может отклонить ваше приложение, если вы это сделаете. Если вы просто хотите настроить indexBar, вам может помочь библиотека ниже.

Вы можете использовать пользовательскую библиотеку CollectionIndexTools от Swift (iOS 8+), которую вы можете настроить.

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
    }()
0 голосов
/ 02 августа 2015
tableView.tintColor = UIColor.redColor();

сделает это за вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...