富文本拼接封装,包含空值处理。

    富文本的拼接经常要写一大串代码,有的时候还要拼接图片,才能达到效果,还容易搞错。如果有服务端返回的空值,还会造成程序crash。这里就进行了封装。包含了空值处理。


NSAttributedString+AtrtributeText.h文件

#import 

@import UIKit;

@interface NSAttributedString(AtrtributeText)



//使用说明:将要进行富文本操作的字符串传入texts数组,colors传入对应的颜色数组,fonts传入对应的字体数组,colors 和fonts 中的元素的顺序要与texts中的要进行富文本操作的元素一一对应。

+ (NSAttributedString *)attributedTextArray:(NSArray *)texts

                                 textColors:(NSArray *)colors

                                  textfonts:(NSArray *)fonts;





//使用说明:将要进行富文本操作的字符串传入texts数组,colors传入对应的颜色数组,fonts传入对应的字体数组,colors 和fonts 中的元素的顺序要与texts中的要进行富文本操作的元素一一对应。insertIndex是图片放在texts数组中的元素个数加上1,然后看图片在这个加了1的数组中的index,即为insertIndex。imageBounds为图片的bounds。

+ (NSAttributedString *)fixAttributedStrWithTexts:(NSArray *)texts

                                       textColors:(NSArray *)colors

                                        textfonts:(NSArray *)fonts

                                            image:(UIImage *)image

                                      insertIndex:(NSInteger)index

                                      imageBounds:(CGRect)bounds;

@end

-----------------------------------------------------------------------------------------------

NSAttributedString+AtrtributeText.m文件

#import "NSAttributedString+AtrtributeText.h"

@import CoreFoundation;

@implementation NSAttributedString(AtrtributeText)

+ (NSAttributedString *)attributedTextArray:(NSArray *)texts

                                 textColors:(NSArray *)colors

                                  textfonts:(NSArray *)fonts

{

    if(texts.count == 0){

        return nil;

    }

    

    NSMutableAttributedString *resultAttributedStr = [[NSMutableAttributedString alloc] init];

    for(int i=0; i





你可能感兴趣的:(IOS开发学习点滴)