Настройка индексной панели UITableView - PullRequest
6 голосов
/ 28 февраля 2011

Я бы назвал свои навыки почти "базовыми", я понимаю большую часть того, что я читаю и вижу, когда дело доходит до цели-c, но это немного не в моём понимании.

у меня есть tableView с прозрачным фоном и прозрачными ячейками, к сожалению, человек, для которого я разрабатываю приложение, настаивает на том, чтобы фоновое шоу было серым.Моя проблема - указатель справа.Я читал, что цвет текста, цвет фона и тому подобное запрещены, когда дело доходит до настройки.Кто-нибудь создал свою собственную полосу индекса и прикрепил ее к методам прокрутки tableView?

, как я сказал, я в растерянности, когда дело доходит до того, с чего начать.Все, что мне нужно, я верю, это точка в правильном направлении.мне нужно создать небольшой UIView и поиграть с сенсорными событиями?

Ответы [ 4 ]

4 голосов
/ 15 октября 2012

Просто сделай так:

if ([[self tableView] respondsToSelector:@selector(setSectionIndexColor:)])
{
    // In iOS 6 there is a own method available to set the index color
    [[self tableView] setSectionIndexColor:[UIColor whiteColor]];
}
else
{
    // Use this hack in previous iOS releases
    for(UIView *view in [self.tableView subviews])
    {
        if([view respondsToSelector:@selector(setIndexColor:)])
        {
            [view performSelector:@selector(setIndexColor:) withObject:[UIColor whiteColor]];
        }
    }
}
4 голосов
/ 09 марта 2011

Если вы хотите внести какие-либо изменения в индексную строку, вы должны использовать CAlayer.

Установить цвет фона UITableViewCell с помощью CALayer

1 голос
/ 01 октября 2012

Начиная с iOS 6, вы можете использовать sectionIndexColor для установки цвета шрифта вертикальной алфавитной индексной панели. Вы также можете установить цвет фона вокруг вертикальной алфавитной индексной панели, когда пользователи перетаскивают пальцем с помощью sectionIndexTrackingBackgroundColor. Убедитесь, что на устройстве установлено значение 6 или выше, если вы также ориентируетесь на устройства iOS 5. -rrh

//iOS 6 devices only
[[self tableView] setSectionIndexColor:[UIColor whiteColor]];

//if targeting devices prior to iOS6 prevent a crash by verifying device OS version
NSArray *versionCompatibility = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
NSInteger OSVersion = [[versionCompatibility objectAtIndex:0] intValue];
if (OSVersion >= 6) {
    [[self tableView] setSectionIndexColor:[UIColor whiteColor]];
}
0 голосов
/ 07 сентября 2013

Нет собственного способа настроить панель индексов. Попробуйте вместо этого этот пользовательский индексный бар. Его довольно легко использовать и настраивать:

https://github.com/debris/AIMTableViewIndexBar

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