Как изменить цвет бокового алфавита в индексированном UITableView? - PullRequest
45 голосов
/ 15 апреля 2009

У меня есть табличное представление с алфавитным индексом, и я использую боковой алфавит для быстрого просмотра списка. Для тех, кто не знаком с этим:

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {

Моя проблема в том, что мое приложение было очищено от черного цвета. И теперь трудно увидеть буквы алфавита сбоку.

Я не могу понять, как изменить цвет алфавита. Я бы хотел, чтобы он был «белым», если это вообще возможно.

Ответы [ 12 ]

1 голос
/ 19 апреля 2009

Создание изменяемого массива, содержащего метку альтернативного заголовка В

-(NSArray * )sectionIndexTitlesForTableView:(UITableView * )tableView

возвращает массив @ "", где количество пробелов между кавычками определяет ширину подсвеченной подсветкой. Пусть «sectionIndexTitlesForTableView» вызывает функцию метки обновления. В этой функции удалите все метки в массиве, который вы создали ранее, из их суперпредставлений. Затем создайте и добавьте столько меток, сколько необходимо. Затем добавьте их в суперпредставление стола.

Это строки, необходимые для размещения меток в нужном месте.

rect.origin.x = table.frame.origin.x+table.frame.size.width-rect.size.width-2;
rect.origin.y = 5+table.frame.origin.y+counter *(280-rect.size.height-([customIndexLabels count]-1))/([customIndexLabels count]-1);
if ([customIndexLabels lastObject]==thisLabel)
{
   rect.origin.y-=10;
}

Надеюсь, это поможет. Это не идеально, я просто не достаточно, чтобы исправить это сам Основная проблема заключается в том, что интервал между последними метками не является одинаковым.

0 голосов
/ 17 сентября 2015

Swift Edition для недокументированного изменения шрифта:

extension NSObject {

    class func objectClassName() -> String {

        let classLongName = reflect(self.self).summary;

        let tokens = classLongName.componentsSeparatedByString(".")

        if let typeName = tokens.last {

            return typeName
        }

        return NSStringFromClass(self.dynamicType)
    }
}

func changeSectionIndexFont(tableView: UITableView) -> Void {

        let realSubviews = tableView.subviews as! [UIView]

        for subview in realSubviews {

            if subview.dynamicType.objectClassName() == "UITableViewIndex" {

                subview.setValue(UIFont(name: "OpenSans", size: 10), forKey: "font")
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...