Можно ли установить атрибуты ссылки с помощью 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: в ячейке табличного представления.
Есть идеи, почему это не работает?
Кстати: если я устанавливаю свойства вручную, это работает.