Можно ли установить атрибуты ссылки с помощью UIAppearance на TTTAttributedLabel?

Я пытаюсь создать TTTAttributedLabel оболочка, чтобы обеспечить поддержку UIAppearance для linkAttributes а также activeLinkAttributes свойства среди других вещей (например, пользовательские ссылки)

Как интерфейс

@interface MYLabel : TTTAttributedLabel

@property (strong, readwrite, nonatomic) NSString *richText;

@property (strong, nonatomic) NSDictionary *dataTextAttributes UI_APPEARANCE_SELECTOR; //Default: text color blue
@property (strong, nonatomic) NSDictionary *selectedDataTextAttributes UI_APPEARANCE_SELECTOR; //Default: text color red

@end

Как реализация

@implementation MYLabel

// .. some code

- (void)setDataTextAttributes:(NSDictionary *)dataTextAttributes {
    _dataTextAttributes = dataTextAttributes;
    self.linkAttributes = dataTextAttributes;
    [self setNeedsLayout];
}

- (void)setSelectedDataTextAttributes:(NSDictionary *)selectedDataTextAttributes {
    _selectedDataTextAttributes = selectedDataTextAttributes;
    self.activeLinkAttributes = selectedDataTextAttributes;
    [self setNeedsLayout];
}

// .. some code

@end

Проблема заключается в том, что сеттеры вызывают сеттеры после того, как я добавил несколько ссылок вручную, используя:

[label addLinkToURL:[NSURL URLWithString:@"action://defaultAction"] withRange:result.range]

Так получилось, что ссылки не получают правильного стиля, если я не использую метку i, e: в ячейке табличного представления.

Есть идеи, почему это не работает?

Кстати: если я устанавливаю свойства вручную, это работает.

0 ответов

Другие вопросы по тегам