Изменения цвета многоточия UILabel и UILabel в iOS 7

Я вижу что-то действительно странное, что происходит на моих UITableViewCells, содержащих UILabels с многоточием (этот проект только для iOS 7). Я вижу многоточие при первой загрузке tableView. Затем, если я нажимаю ячейку, цвета текста + многоточия изменяются так же, как я это просил в моей функции setHighlighted. Но когда я отпускаю его (когда я перешел к подробному viewController и вернулся к первому viewController с табличным представлением или просто нажал и затем прокрутил, чтобы потерять выделение), многоточие исчезает.

На самом деле я обнаружил, что он все еще там, просто он белый на белом фоне (цвет подсветки для текста, см. код внизу). Для лучшего понимания, вот экраны, показывающие то, что я только что описал:

  

Перед нажатием кнопки

.

Перед нажатием

  

Ячейка подсвечивается, пока мы нажимаем:

Ячейка выделена

  

После нажатия перейдите к следующему viewController и нажмите назад:

После нажатия перейдите к следующему viewController и нажмите назад

Обратите внимание, что если я нажму + потеряю выделение при прокрутке, то только ячейка, которая была выделена, потеряет многоточие. Кроме того, при прокрутке tableView все в порядке, пока я не достигну его нижней части и не загрузлю следующие элементы списка - тогда весь многоточие сохранит белый цвет (а также выделенный шрифт, который выделен жирным шрифтом). Это привело меня к мысли, что это вызвано тем, что что-то было сделано при перезагрузке данных ячеек.

Вот код setHighlighted:

-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    NSUInteger fontSize = _titleLabel.font.pointSize;

    [UIView animateWithDuration:(highlighted ? .2 : .5)
                          delay:0
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^{
                         _background.backgroundColor = (highlighted ? [UIColor blueND] : [UIColor whiteColor]);
                         _hourLabel.textColor = (highlighted ? [UIColor whiteColor] : [UIColor blackColor]);
                         _titleLabel.textColor = (highlighted ? [UIColor whiteColor] : [UIColor blackColor]);
                         _titleLabel.font = (highlighted ? [UIFont boldSystemFontOfSize:fontSize] : [UIFont systemFontOfSize:fontSize]);
                         _consoleLabel.textColor = (highlighted ? [UIColor blueND] : [UIColor whiteColor]);
                         _consoleLabel.backgroundColor = (highlighted ? [UIColor whiteColor] : [UIColor blueND]);
                     }
                     completion:nil];
}

Кто-нибудь знает, что здесь происходит?

Заранее благодарю за помощь!

Обновление: после комментария от Лео Натана, вот результат fo po_titleLabel.attributedString для выделенной ячейки, как только она была выделена, а затем отпущена:

(lldb) po _titleLabel.attributedText
Mario Golf : World Tour, le Lagon Cheep Cheep en vidéo{
    NSColor = "UIDeviceWhiteColorSpace 0 1";
    NSFont = "<UICTFont: 0x1669a990> font-family: \".HelveticaNeueInterface-Regular\"; font-weight: normal; font-style: normal; font-size: 14.00pt";
    NSParagraphStyle = "Alignment 0, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 4, Tabs (\n    28L,\n    56L,\n    84L,\n    112L,\n    140L,\n    168L,\n    196L,\n    224L,\n    252L,\n    280L,\n    308L,\n    336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0";
    NSShadow = "NSShadow {0, -1} color = {(null)}";
}
7 голосов | спросил CyberDandy 15 MaramSat, 15 Mar 2014 02:42:46 +04002014-03-15T02:42:46+04:0002 2014, 02:42:46

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132