我在我的ViewController中创建了一个使用故事板创建的UILabel.标签文字的字体,大小和颜色,其对齐方式全部设置在故事板中.故事板中的标签连接到我的文件p_patientNameLbl中的插座.
现在我试图通过编程方式更改标签的文本,如下所示:
[self.p_patientNameLbl setText:@"Vasya"];
我看不到新的文本,直到我意识到故事板中的原始标签在黑色背景上是白色的,但显然在我改变了上面的标签文本之后,所有的字体属性都被重设了,现在它是一个黑色文本黑色背景,因此没有看到.一旦我以编程方式设置颜色:
[self.p_patientNameLbl setTextColor:[UIColor whiteColor]];
解决方法
这是因为您正在告诉“界面”构建器使用在其文本上设置了预定义属性的标签,并使用纯文本替换此归因文本.而不是setText或setTextColor,您必须使用setAttributedText,并指定要传递给归因字符串的属性.
以下是一个如何以编程方式将归属字符串应用于标签的示例.我不知道有什么更好的方法,但是使用这种方式,您可以更改文本或文本颜色,只要您将其他属性与它们一起设置,所有更改将被正确应用.
[myLabel setAttributedText:[self myLabelAttributes:@"Some awesome text!"]]; .................... - (NSMutableAttributedString *)myLabelAttributes:(Nsstring *)input { NSMutableAttributedString *labelAttributes = [[NSMutableAttributedString alloc] initWithString:input]; [labelAttributes addAttribute:NSstrokeWidthAttributeName value:[NSNumber numberWithFloat:-5.0] range:NSMakeRange(0,labelAttributes.length)]; [labelAttributes addAttribute:NSstrokeColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0,labelAttributes.length)]; [labelAttributes addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0,labelAttributes.length)]; return labelAttributes; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。