Closed gx2015 closed 8 years ago
贴一下相关代码看看吧。
NSString *text = @"呵呵呵呵哈哈哈哈哼哼嘎嘎飒飒撒卡卡卡卡啦啦啦啦啦啪啪啪啪";
NSMutableAttributedString *attr1 = [[NSMutableAttributedString alloc] initWithString:text];
[attr1 setAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor]} range:NSMakeRange(1, 6)];
[attr1 setAttributes:@{NSForegroundColorAttributeName:[UIColor blueColor]} range:NSMakeRange(8, 3)];
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 250, 30)];
label1.textColor = [UIColor redColor];
label1.attributedText = attr1;
[self.view addSubview:label1];
YYLabel *label2 = [[YYLabel alloc] initWithFrame:CGRectMake(50, 100, 250, 30)];
label2.textColor = [UIColor redColor];
label2.attributedText = attr1;
[self.view addSubview:label2];
两段代码几乎一样 但是结果显示却不一样 为什么?
这个之前有过相关讨论:https://github.com/ibireme/YYText/issues/212
怎样才能达到和系统Label同样的效果呢?
text、textColor、font 这几个属性,可以看作是对 attributedText 的封装,这个 UILabel 和 YYLabel 是一样的。但是像上面链接中讨论的那样,UILabel 的表现是比较奇怪的,我不想让 YYLabel 也有那种不统一的表现。
你可以 fork 代码,修改 setAttributedText 方法来做这种修改。
好的 谢谢!
为什么YYLabel创建时指定文本颜色 然后等到了设置文本的时候 前面设置的颜色无效 只能是在设置文本后重新设置文本颜色才有效? 这跟系统的Label不一样。