数组越界 三·代码分析 出错的堆栈最后指向了一个类方法 + (CGFloat)getTheStringWidth:(NSString *)string setFont:(CGFloat)font { NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:string]; NSRange range = NSMakeRange(0 CGFloat)getTheStringWidth:(NSString *)string setFont:(CGFloat)font { string = @""; string = nil; NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:string]; NSRange range = NSMakeRange(0 *attrStr = [[NSMutableAttributedString alloc] initWithString:string]; NSRange range = NSMakeRange(0
getter方法,推荐上面的声明的block属性 实现getter方法 - (NSMutableAttributedString * _Nonnull (^)(NSString * _Nonnull)) kn_addString{ return ^id(NSString *str){ NSMutableAttributedString *attStr = [[NSMutableAttributedString (strong, NSMutableAttributedString, UIFont*, kn_fontSize); // 字体背景颜色 k_PropertyStatement(strong, NSMutableAttributedString (strong, NSMutableAttributedString, NSString*, kn_link); // 图文混排等 k_PropertyStatement(strong, NSMutableAttributedString *, kn_paragraph); @end NS_ASSUME_NONNULL_END NSMutableAttributedString+Chain.m // // NSMutableAttributedString
传入一串文本"02,03,PM25" 返回小角标数字 /// 字符串数字小角标 /// @param text 文本 /// @param size 角标字体 +(NSMutableAttributedString if (text.length == 0) {return nil;} NSMutableArray *numStrArr = [NSMutableArray array]; NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc]initWithString:text.uppercaseString]; NSScanner
changeLineSpaceForLabel:(UILabel *)label WithSpace:(float)space { NSString *labelText = label.text; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText]; NSMutableParagraphStyle *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName withLineSpace:(float)lineSpace WordSpace:(float)wordSpace { NSString *labelText = label.text; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName
I、封装富文本API,采用block实现链式编程的核心思想 1.1 关键步骤 声明block属性 k_PropertyStatement(strong, NSMutableAttributedString , NSString*, kn_addString)// 好处是Xcode的提示比较友好 //- (NSMutableAttributedString * _Nonnull (^)(NSString * _Nonnull))kn_addString// 不推荐直接声明getter方法,推荐上面的声明的block属性 实现getter方法 - (NSMutableAttributedString * *attStr = [[NSMutableAttributedString alloc]initWithString:str]; self.leftStr = str; *xx = [[NSMutableAttributedString alloc]init]; xx.kn_addString(@"封装富文本API").kn_fontColor
而NSMutableAttributedString有可以最自己内容作出颜色以及大小的调整,这样结合起来使用的话,就远比UILabel 灵活的多,效果也酷炫的多,也许CATextLayer就是为了NSMutableAttributedString 使用方式一 初始化一个NSMutableAttributedString,然后向里面添加文字样式,将其赋给控件的 *attributedText*属性。 NSString *str = @"相看两不厌,唯有敬亭山"; //创建NSMutableAttributedString NSMutableAttributedString *attrStr = [ 赋值, 并利用方法appendAttributedString: 添加入NSMutableAttributedString,将其赋给控件的attributedText属性。 ** //初始化NSMutableAttributedString NSMutableAttributedString *attributedString = [[NSMutableAttributedString
*attributeString = [[NSMutableAttributedString alloc] initWithString:text]; NSMutableParagraphStyle 将要计算的最大宽度 lineSpacing:行间距大小 当然关于 NSAttributedString 的设置还有很多,不一一列举了,提供一个同事封装好的留下以后用 调整行间距 //调整行间距 + (NSMutableAttributedString *)atttibutedStringForString:(NSString *)string LineSpace:(CGFloat)lineSpace { NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string]; NSMutableParagraphStyle *attributedString = [[NSMutableAttributedString alloc]initWithString:str]; [attributedString addAttributes
继承自UITextView,运用NSMutableAttributedString实现 1、Effect display Test1:直接使用效果如下: Test2:在TableViewCell里使用效果如下 lessLine) * lineHeight } 获得前n行的文案:(难点在此,差点放弃,最后在 ios获取UILabel每行显示的文字 这篇文章里找到解决方案) let attributedString = NSMutableAttributedString range, with: moOpenText) // set attributs and pargrapgStyle for attributedString let attributedString = NSMutableAttributedString
1.设置label的html图片 -(NSMutableAttributedString *)setAttributedString:(NSString *)str { //如果有换行,把\n替换成 important;height:auto}</style></head>%@",[UIScreen mainScreen].bounds.size.width-28,str]; NSMutableAttributedString *htmlString =[[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUTF8StringEncoding important;height:auto}</style></head>%@",[UIScreen mainScreen].bounds.size.width,str]; NSMutableAttributedString *htmlString =[[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUTF8StringEncoding
NSString stringWithFormat:@"%@ 金币 ¥%@",proModel.integration,proModel.price]; NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc]initWithString:valueL.text]; NSRange range1
代码: NSMutableAttributedString * desStr = [[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding 代码: NSMutableAttributedString * desStr = [[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding
/** * ZY CODE * * 给Label设置下划线 */ +(void)setLabelUnderline:(UILabel *)label{ NSMutableAttributedString *content = [[NSMutableAttributedString alloc] initWithString:label.text]; NSRange contentRange = attribtDic = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]}; NSMutableAttributedString *content = [[NSMutableAttributedString alloc]initWithString:label.text attributes:attribtDic];
openMicPrivilegeTipsLabel.font = Font13; openMicPrivilegeTipsLabel.numberOfLines = 0; // 调整行间距 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:textStr]; NSMutableParagraphStyle
label内容宽度 CGFloat textWidth = 414; //获取数据 NSString *text = model.content; //创建NSMutableAttributedString 实例,并将text传入 NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString
UIColor lightGrayColor]; labelStr.font = [UIFont systemFontOfSize:15]; [self.view addSubview:labelStr]; NSMutableAttributedString *newStr = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"AAA:%@", labelStr.text *attribtDic = @{NSUnderlineStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleSingle]}; NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:label.text attributes:attribtDic]; // *attribtStr2 = [[NSMutableAttributedString alloc]initWithString:label2.text attributes:attribtDic2];
* attri = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%d%%",old]]; * attri = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%d%%",old]]; 1:progress; NSMutableAttributedString * attri ; if (progress==1) { attri = [[NSMutableAttributedString alloc]initWithString:@"100%"]; }else{ attri = [[NSMutableAttributedString alloc]initWithString * attr = [[NSMutableAttributedString alloc]initWithAttributedString:_tipLabel.attributedText]; [
首先,我们初始化一个NSMutableAttributedString对象。 NSDictionary *)attrs; //通过自身对象初始化 //- (instancetype)initWithAttributedString:(NSAttributedString *)attrStr; NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc]initWithString:@"123!
@param textColor 文本颜色 @param textBorderColor 文本边框颜色 @param strokeWidth 文件边框宽度 @return 文本 */ +(NSMutableAttributedString NSForegroundColorAttributeName:textColor }; NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc] initWithString:str attributes:dict]; return attribtStr
- (NSMutableAttributedString *)text:(NSString *)string searchText:(NSString *)text { NSMutableString * mutableString = [[NSMutableString alloc] initWithString:string]; NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:string]; int length = 0; while (YES) {
} [self changeMoreShowText:showNum andBtn:replyBtn]; NSMutableAttributedString *attstr2 = [[NSMutableAttributedString alloc]initWithString:@"收起"]; [attstr2 addAttribute model.replys intValue]-1):(1)]; }else{ tempStr = [NSString stringWithFormat:@"展开更多回复"]; } NSMutableAttributedString *attstr = [[NSMutableAttributedString alloc]initWithString:tempStr]; [attstr addAttribute:NSForegroundColorAttributeName