我想创建一个TTTAttributedLabel
包装器,以便为linkAttributes
和activeLinkAttributes
属性以及其他内容(即自定义链接)提供UIAppearance支持
作为界面
@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
问题是在我使用以下方法手动添加一些链接后,代理调用了setter:
[label addLinkToURL:[NSURL URLWithString:@"action://defaultAction"] withRange:result.range]
除非我重复使用标签i,e:在表格视图单元格上,否则链接没有得到正确的stlye。
知道为什么这不起作用?
顺便说一句:如果我手动设置属性,它就会起作用。