Настройка индексов раздела в UITableView в приложении iphone
Ответ 1
Не похоже, что стандартное представление индекса настраивается.
В моем приложении я просто создал собственный индексный указатель вместо стандартного. В основном все, что вам нужно сделать, это отслеживать позицию касания в этом представлении и соответственно прокручивать UITableView. Вам также может потребоваться добавить некоторые визуальные эффекты - изменить цвет фона представления при касании и выделить текущий заголовок раздела.
Ответ 2
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;
Ответ 3
Быстрая версия:
tableView.sectionIndexBackgroundColor = UIColor.clearColor() //iOS7+
tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor() //iOS6+
tableView.sectionIndexColor = UIColor.redColor() //iOS6+
Чтобы настроить высоту индексного вида (только стиль UITableViewStylePlain
):
tableView.sectionIndexMinimumDisplayRowCount = 15
Ответ 4
tableView.tintColor = UIColor.redColor();
сделает это за вас
Ответ 5
На самом деле для Apple не существует официального 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
}()