黑体和非粗体文字在一个单一的UILabel?

黑体和非粗体文字在一个单一的UILabel?

如何在uiLabel中同时包含粗体和非粗体文本?

我宁愿不使用UIWebView.。我也读过使用NSAttributedString可能是可能的,但是我不知道如何使用它。有什么想法吗?

苹果公司在他们的几个应用程序中实现了这一点;


慕妹3242003
浏览 610回答 3
3回答

慕盖茨4494581

在UILabel上尝试一个类别:下面是它的用法:myLabel.text = @"Updated: 2012/10/14 21:59 PM";[myLabel boldSubstring: @"Updated:"];[myLabel boldSubstring: @"21:59 PM"];下面是分类UILabel+Boldify.h- (void) boldSubstring: (NSString*) substring;- (void) boldRange: (NSRange) range;UILabel+Boldify.m- (void) boldRange: (NSRange) range {     if (![self respondsToSelector:@selector(setAttributedText:)]) {         return;     }     NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithAttributedString:self.attributedText];     [attributedText setAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:self.font.pointSize]} range:range];     self.attributedText = attributedText;    }- (void) boldSubstring: (NSString*) substring {     NSRange range = [self.text rangeOfString:substring];     [self boldRange:range];}请注意,这将只在iOS 6和更高版本中工作。在iOS 5和更早版本中,它将被忽略。

慕尼黑5688855

有基于bbrame分类的分类。它的工作原理类似,但允许您使用相同的方法。UILabel多次累积结果。UILabel+Boldify.h@interface UILabel (Boldify)- (void) boldSubstring: (NSString*) substring;- (void) boldRange: (NSRange) range;@endUILabel+Boldify.m@implementation UILabel (Boldify)- (void)boldRange:(NSRange)range {     if (![self respondsToSelector:@selector(setAttributedText:)]) {         return;     }     NSMutableAttributedString *attributedText;     if (!self.attributedText) {         attributedText = [[NSMutableAttributedString alloc] initWithString:self.text];     } else {         attributedText = [[NSMutableAttributedString alloc] initWithAttributedString:self.attributedText];     }     [attributedText setAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:self.font.pointSize]} range:range];     self.attributedText = attributedText;}- (void)boldSubstring:(NSString*)substring {     NSRange range = [self.text rangeOfString:substring];     [self boldRange:range];}@end有了这一更正,你可以多次使用它(如:myLabel.text = @"Updated: 2012/10/14 21:59 PM";[myLabel boldSubstring: @"Updated:"];[myLabel boldSubstring: @"21:59 PM"];
打开App,查看更多内容
随时随地看视频慕课网APP