iOS 富文本属性

一、NSAttributedString属性列表:

/** 富文本属性
 NSFontAttributeName                   // 设置字体
 NSForegroundColorAttributeName        // 设置文字颜色
 NSBackgroundColorAttributeName        // 设置背景颜色
 NSKernAttributeName                   // 设置字符间距
 NSParagraphStyleAttributeName         // 设置段落风格
 NSStrikethroughStyleAttributeName     // 添加删除线
 NSStrikethroughColorAttributeName     // 添加删除线颜色
 NSUnderlineStyleAttributeName         // 添加下划线
 NSUnderlineColorAttributeName         // 添加下划线颜色
 NSStrokeColorAttributeName            // 设置文字描边颜色
 NSStrokeWidthAttributeName            // 设置文字描边宽度
 NSShadowAttributeName                 // 设置阴影
 NSLigatureAttributeName               // 设置连体属性
 NSTextEffectAttributeName             // 设置文本特殊效果
 NSAttachmentAttributeName             // 设置文本附件(一般用于图文混排,配合:NSTextAttachment对象使用)
 NSLinkAttributeName                   // 设置链接属性
 NSBaselineOffsetAttributeName         // 设置基线偏移量
 NSObliquenessAttributeName            // 设置字体倾斜
 NSExpansionAttributeName              // 设置文本扁平
 NSWritingDirectionAttributeName       // 设置文字书写方向
 NSVerticalGlyphFormAttributeName      // 设置文本段落排版格式(基本无用,iOS只支持横排)
 */

二、富文本属性设置:

因富文本属性这些对应的''键''不是那么好找,所以直接封装成一个方法。调用方法比去找对应的键还是要方便一些:对NSMutableAttributedString的分类进行方法扩展。

.h文件
@interface NSMutableAttributedString (Category)
/** 系统字体大小 */
- (NSMutableAttributedString *)cc_fontSize:(CGFloat)size range:(NSRange)range;
/** 设置字体 */
- (NSMutableAttributedString *)cc_font:(UIFont *)font range:(NSRange)range;
/** 文字颜色 */
- (NSMutableAttributedString *)cc_textColor:(UIColor *)color range:(NSRange)range;
/** 背景色 */
- (NSMutableAttributedString *)cc_backgroundColor:(UIColor *)color range:(NSRange)range;
/** 添加字间距 */
- (NSMutableAttributedString *)cc_addSpace:(CGFloat)space range:(NSRange)range;
/** 仅添加行间距 */
- (NSMutableAttributedString *)cc_addLineSpace:(CGFloat)space range:(NSRange)range;
/** 仅添加段落间距 */
- (NSMutableAttributedString *)cc_addParagraphSpace:(CGFloat)space range:(NSRange)range;
/** 同时添加行间距和段落间距 */
- (NSMutableAttributedString *)cc_addLineSpace:(CGFloat)lineSpace ParagraphSpace:(CGFloat)paragraphSpace range:(NSRange)range;
/** 添加中划线 */
- (NSMutableAttributedString *)cc_addMidline:(CGFloat)lineHeght range:(NSRange)range;
/** 中划线颜色 */
- (NSMutableAttributedString *)cc_midlineColor:(UIColor *)color range:(NSRange)range;
/** 添加下划线 */
- (NSMutableAttributedString *)cc_addUnderLine:(NSUnderlineStyle)style range:(NSRange)range;
/** 下划线颜色 */
- (NSMutableAttributedString *)cc_underLineColor:(UIColor *)color range:(NSRange)range;
/** 描边颜色 */
- (NSMutableAttributedString *)cc_strokeColor:(UIColor *)color range:(NSRange)range;
/** 给文字添加描边(width:描边框度) */
- (NSMutableAttributedString *)cc_addStroke:(CGFloat)width range:(NSRange)range;
/** 添加阴影 */
- (NSMutableAttributedString *)cc_addShadow:(CGSize)shadowOffset color:(UIColor *)color range:(NSRange)range;

/** 添加图片 */
- (NSAttributedString *)cc_addImg:(NSString *)imageName frame:(CGRect)frame;
/** 拼接富文本 */
- (NSMutableAttributedString *)cc_addAttribute:(NSMutableAttributedString *)attribute;


/**
 连字符
 @param num 1:连接,0:无连接
 @param range 范围
 @return 富文本字符串
 */
- (NSMutableAttributedString *)cc_addLigatureWithNum:(int)num range:(NSRange)range;
/** 文字效果 */
- (NSMutableAttributedString *)cc_addEffectWithRange:(NSRange)range;
/** 链接(在textView中才有用) */
- (NSMutableAttributedString *)cc_addLink:(NSString *)url range:(NSRange)range;
/**
 基础偏移量
 @param value 正值向上偏移,负值向下偏移,默认0(不偏移)
 @param range 范围
 @return 富文本字符串
 */
- (NSMutableAttributedString *)cc_addLineOffset:(CGFloat)value range:(NSRange)range;
/**
 字体倾斜
 @param value 正值向右倾斜,负值向左倾斜, 默认0(不倾斜)
 @param range 范围
 @return 富文本字符串
 */
- (NSMutableAttributedString *)cc_addObliqueness:(CGFloat)value range:(NSRange)range;
/**
 文本扁平化(横向拉伸)
 @param value 正值横向拉伸,负值横向压缩,默认0(不拉伸)
 @param range 范围
 @return 富文本字符串
 */
- (NSMutableAttributedString *)cc_addExpansion:(CGFloat)value range:(NSRange)range;
/**
 文字书写方向
 @param value 0,1,2,3(传值"3"的时候文字是从右至左)
 //    NSWritingDirectionLeftToRight | NSTextWritingDirectionEmbedding
 //    NSWritingDirectionRightToLeft | NSTextWritingDirectionEmbedding
 //    NSWritingDirectionLeftToRight | NSTextWritingDirectionOverride
 //    NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride
 @param range 范围
 @return 富文本字符串
 */
- (NSMutableAttributedString *)cc_addWritingDirection:(int)value range:(NSRange)range;
/**
 文字排版方向
 @param value 0表示横排文本,1表示竖排文本 在iOS中只支持0
 @param range 范围
 @return 富文本字符串
 */
- (NSMutableAttributedString *)cc_addVerticalGlyph:(CGFloat)value range:(NSRange)range;

@end

@interface NSString (AttStr)
/** 字符串转富文本 */
- (NSMutableAttributedString *)cc_strAttribute;
@end
.m文件
#import "NSMutableAttributedString+Category.h"

@implementation NSMutableAttributedString (Category)

// 获取字符串范围
static inline NSRange cc_getRange(NSRange range)
{
    return NSMakeRange(range.location, range.length);
}

#pragma mark - 系统字体大小
- (NSMutableAttributedString *)cc_fontSize:(CGFloat)size range:(NSRange)range{
    [self addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:size] range:cc_getRange(range)];
    return self;
}
#pragma mark - 设置字体
- (NSMutableAttributedString *)cc_font:(UIFont *)font range:(NSRange)range{
    [self addAttribute:NSFontAttributeName value:font range:cc_getRange(range)];
    return self;
}

#pragma mark - 文字颜色
- (NSMutableAttributedString *)cc_textColor:(UIColor *)color range:(NSRange)range{
    [self addAttribute:NSForegroundColorAttributeName value:color range:cc_getRange(range)];
    return self;
}

#pragma mark - 背景色
- (NSMutableAttributedString *)cc_backgroundColor:(UIColor *)color range:(NSRange)range{
    [self addAttribute:NSBackgroundColorAttributeName value:color range:cc_getRange(range)];
    return self;
}

#pragma mark - 添加字间距
- (NSMutableAttributedString *)cc_addSpace:(CGFloat)space range:(NSRange)range{
    [self addAttribute:NSKernAttributeName value:@(space) range:cc_getRange(range)];
    return self;
}

#pragma mark - 仅添加行间距
- (NSMutableAttributedString *)cc_addLineSpace:(CGFloat)space range:(NSRange)range {
    NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
    style.lineSpacing = space;  //行间距
    style.lineBreakMode = NSLineBreakByWordWrapping; //换行样式(在什么地方换行)
    [self addAttribute:NSParagraphStyleAttributeName value:style range:cc_getRange(range)];
    return self;
}

#pragma mark - 仅添加段落间距
- (NSMutableAttributedString *)cc_addParagraphSpace:(CGFloat)space range:(NSRange)range {
    NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
    style.paragraphSpacing = space;  //段落间距
    style.lineBreakMode = NSLineBreakByWordWrapping; //换行样式(在什么地方换行)
    [self addAttribute:NSParagraphStyleAttributeName value:style range:cc_getRange(range)];
    return self;
}

#pragma mark - 同时添加行间距和段落间距
- (NSMutableAttributedString *)cc_addLineSpace:(CGFloat)lineSpace ParagraphSpace:(CGFloat)paragraphSpace range:(NSRange)range {
    NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
    style.lineSpacing = lineSpace;  //行间距
    style.paragraphSpacing = paragraphSpace;  //段落间距
    style.lineBreakMode = NSLineBreakByClipping; //换行样式(在什么地方换行)
    [self addAttribute:NSParagraphStyleAttributeName value:style range:cc_getRange(range)];
    return self;
}

#pragma mark - 添加中划线
- (NSMutableAttributedString *)cc_addMidline:(CGFloat)lineHeght range:(NSRange)range {
    [self addAttribute:NSStrikethroughStyleAttributeName value:@(lineHeght) range:cc_getRange(range)];
    return self;
}

#pragma mark - 中划线颜色
- (NSMutableAttributedString *)cc_midlineColor:(UIColor *)color range:(NSRange)range {
    [self addAttribute:NSStrikethroughColorAttributeName value:color range:cc_getRange(range)];
    return self;
}

#pragma mark - 添加下划线
- (NSMutableAttributedString *)cc_addUnderLine:(NSUnderlineStyle)style range:(NSRange)range{
    [self addAttribute:NSUnderlineStyleAttributeName value:@(style) range:cc_getRange(range)];
    return self;
}

#pragma mark - 下划线颜色
- (NSMutableAttributedString *)cc_underLineColor:(UIColor *)color range:(NSRange)range{
    [self addAttribute:NSUnderlineColorAttributeName value:color range:cc_getRange(range)];
    return self;
}

#pragma mark - 描边颜色
- (NSMutableAttributedString *)cc_strokeColor:(UIColor *)color range:(NSRange)range{
    [self addAttribute:NSStrokeColorAttributeName value:color range:cc_getRange(range)];
    return self;
}

#pragma mark - 给文字添加描边(width:描边框度)
- (NSMutableAttributedString *)cc_addStroke:(CGFloat)width range:(NSRange)range{
    [self addAttribute:NSStrokeWidthAttributeName value:@(width) range:cc_getRange(range)];
    return self;
}

#pragma mark - 添加阴影
- (NSMutableAttributedString *)cc_addShadow:(CGSize)shadowOffset color:(UIColor *)color range:(NSRange)range{
    NSShadow *shadow = [[NSShadow alloc] init];
    shadow.shadowColor = color;
    shadow.shadowOffset = shadowOffset;
    [self addAttribute:NSShadowAttributeName value:shadow range:cc_getRange(range)];
    return self;
}

#pragma mark - 添加图片(返回不可变的属性)
- (NSAttributedString *)cc_addImg:(NSString *)imageName frame:(CGRect)frame{
    UIImage *smileImage = [UIImage imageNamed:imageName];
    NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
    textAttachment.image = smileImage;
    textAttachment.bounds = frame; 
    return [NSAttributedString attributedStringWithAttachment:textAttachment];
}

#pragma mark - 拼接富文本
- (NSMutableAttributedString *)cc_addAttribute:(NSMutableAttributedString *)attribute{
    [self appendAttributedString:attribute];
    return self;
}

#pragma mark - 连字符
- (NSMutableAttributedString *)cc_addLigatureWithNum:(int)num range:(NSRange)range {
    [self addAttribute:NSLigatureAttributeName value:[NSNumber numberWithInt:num] range:cc_getRange(range)];
    return self;
}
#pragma mark - 文字效果
- (NSMutableAttributedString *)cc_addEffectWithRange:(NSRange)range {
    [self addAttribute:NSTextEffectAttributeName value:NSTextEffectLetterpressStyle range:cc_getRange(range)];
    return self;
}
#pragma mark - 链接
- (NSMutableAttributedString *)cc_addLink:(NSString *)url range:(NSRange)range {
    [self addAttribute:NSLinkAttributeName value:[NSURL URLWithString:url] range:cc_getRange(range)];
    return self;
}
#pragma mark - 基础偏移量
- (NSMutableAttributedString *)cc_addLineOffset:(CGFloat)value range:(NSRange)range {
    [self addAttribute:NSBaselineOffsetAttributeName value:@(value) range:cc_getRange(range)];
    return self;
}
#pragma mark - 字体倾斜
- (NSMutableAttributedString *)cc_addObliqueness:(CGFloat)value range:(NSRange)range {
    [self addAttribute:NSObliquenessAttributeName value:@(value) range:cc_getRange(range)];
    return self;
}
#pragma mark - 文本扁平化(横向拉伸)
- (NSMutableAttributedString *)cc_addExpansion:(CGFloat)value range:(NSRange)range {
    [self addAttribute:NSExpansionAttributeName value:@(value) range:cc_getRange(range)];
    return self;
}
#pragma mark - 文字书写方向
- (NSMutableAttributedString *)cc_addWritingDirection:(int)value range:(NSRange)range {
    [self addAttribute:NSWritingDirectionAttributeName value:@[@(value)] range:cc_getRange(range)];
    return self;
}
#pragma mark - 文字排版方向
- (NSMutableAttributedString *)cc_addVerticalGlyph:(CGFloat)value range:(NSRange)range {
    [self addAttribute:NSVerticalGlyphFormAttributeName value:@(value) range:cc_getRange(range)];
    return self;
}

@end

// NSString (AttStr)
@implementation NSString (AttStr)
#pragma mark - 创建字符串转富文本
- (NSMutableAttributedString *)cc_strAttribute{
    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:self];
    return attStr;
}
@end

三、效果示例:

  • 1创建富文本:
NSMutableAttributedString *attStr = @"我是一段测试文字,没什么鸟用的文字。\n我是下一行的文字,测试段落效果,对齐方式很随便。\n十有九人堪白眼,百无—用是书生。莫因诗卷愁成谶,春鸟秋虫自作声。".cc_strAttribute;
  • 2添加富文本属性:
1. NSFontAttributeName:设置字体
[attStr cc_fontSize:26 range:NSMakeRange(9, 9)];

2. NSForegroundColorAttributeName:设置文字颜色
[attStr cc_textColor:UIColor.redColor range:NSMakeRange(9, 9)];

3. NSBackgroundColorAttributeName:设置背景颜色
[attStr cc_backgroundColor:UIColor.orangeColor range:NSMakeRange(19, 9)];

4. NSKernAttributeName:设置字符间距
[attStr cc_addSpace:10 range:NSMakeRange(19, 9)];

5. NSParagraphStyleAttributeName:设置段落风格
// 行间距20,段落间距50,范围range(0,9)
[attStr cc_addLineSpace:20 ParagraphSpace:50 range:NSMakeRange(0, 9)];

6. NSStrikethroughStyleAttributeName:添加删除线
[attStr cc_addMidline:2 range:NSMakeRange(9, 9)];

7. NSStrikethroughColorAttributeName:添加删除线颜色
    [attStr cc_addMidline:2 range:NSMakeRange(9, 9)];
    [attStr cc_midlineColor:UIColor.redColor range:NSMakeRange(9, 9)];

8. NSUnderlineStyleAttributeName:添加下划线
[attStr cc_addUnderLine:NSUnderlineStyleSingle range:NSMakeRange(attStr.length - 32, 32)];

9. NSUnderlineColorAttributeName:添加下划线颜色
    [attStr cc_addUnderLine:NSUnderlineStyleSingle range:NSMakeRange(attStr.length - 32, 32)];
    [attStr cc_underLineColor:UIColor.redColor range:NSMakeRange(attStr.length - 32, 32)];

 

10. NSStrokeWidthAttributeName:设置文字描边宽度
[attStr cc_addStroke:2 range:NSMakeRange(9, 9)];

11. NSStrokeColorAttributeName:设置文字描边颜色
    [attStr cc_addStroke:2 range:NSMakeRange(9, 9)];
    [attStr cc_strokeColor:UIColor.blueColor range:NSMakeRange(9, 9)];

12. NSShadowAttributeName:设置阴影
[attStr cc_addShadow:CGSizeMake(2, 2) color:UIColor.redColor range:NSMakeRange(19, 9)];

13. NSLigatureAttributeName:设置连体属性
    // 1:连接,0:无连接。看不出有什么效果
    NSMutableAttributedString *attStr1 = @"abcdefg。\nABCDEFG。\n十有九人堪白眼,百无—用是书生。莫因诗卷愁成谶,春鸟秋虫自作声。".cc_strAttribute;
    [attStr cc_addLigatureWithNum:1 range:NSMakeRange(0, 8)];
    [attStr cc_addLigatureWithNum:0 range:NSMakeRange(9, 8)];

14. NSTextEffectAttributeName:设置文本特殊效果
[attStr cc_addEffectWithRange:NSMakeRange(9, 9)];

15. NSAttachmentAttributeName:设置文本附件(一般用于图文混排,配合:NSTextAttachment对象使用)
    NSAttributedString *imgStr = [@"".cc_strAttribute cc_addImg:@"tips_img" frame:CGRectMake(0, -4, 22, 22)];
    [attStr appendAttributedString:imgStr];
    [attStr insertAttributedString:imgStr atIndex:28];

16. NSLinkAttributeName:设置链接属性(要在textView中才有效)
    UITextView *textView = [[UITextView alloc] init];
    textView.frame = CGRectMake(100, 300, 200, 200);
    [self.view addSubview:textView];
    textView.delegate = self;
    // 要禁用textView的编辑状态,点击跳转才有效
    textView.editable = NO;
    //  传入点击跳转的url
    [attStr cc_addLink:@"https://www.jianshu.com/p/d36844ea9e27" range:NSMakeRange(0, attStr.length)];
    self.textView.attributedText = attStr;

17. NSBaselineOffsetAttributeName:设置基线偏移量
    // offset为正 -> 向上偏移
    [attStr cc_addLineOffset:15 range:NSMakeRange(2, 2)];
    [attStr cc_textColor:UIColor.redColor range:NSMakeRange(2, 2)];
    // offset为负 -> 向下偏移
    [attStr cc_addLineOffset:-15 range:NSMakeRange(6, 2)];
    [attStr cc_textColor:UIColor.redColor range:NSMakeRange(6, 2)];

18. NSObliquenessAttributeName:设置字体倾斜
    // 正值向右倾斜,负值向左倾斜, 默认0(不倾斜)
    [attStr cc_addObliqueness:1 range:NSMakeRange(9, 9)];
    [attStr cc_textColor:UIColor.redColor range:NSMakeRange(9, 9)];
    [attStr cc_addObliqueness:-1 range:NSMakeRange(19, 9)];
    [attStr cc_textColor:UIColor.greenColor range:NSMakeRange(19, 9)];

19. NSExpansionAttributeName:设置文本扁平
    // 正值横向拉伸,负值横向压缩,默认0(不拉伸)
    [attStr cc_addExpansion:1 range:NSMakeRange(9, 9)];
    [attStr cc_textColor:UIColor.redColor range:NSMakeRange(9, 9)];
    [attStr cc_addExpansion:-1 range:NSMakeRange(19, 9)];
    [attStr cc_textColor:UIColor.greenColor range:NSMakeRange(19, 9)];

20. NSWritingDirectionAttributeName:设置文字书写方向
    // 传值"3"的时候文字是:右->左,其他值:左->右
    [attStr cc_addWritingDirection:3 range:NSMakeRange(0, 18)];
    [attStr cc_textColor:UIColor.redColor range:NSMakeRange(0, 18)];

21. NSVerticalGlyphFormAttributeName:设置文本段落排版格式(基本无用,iOS只支持横排)
    // 0表示横排文本,1表示竖排文本;在iOS中只支持0,设置1无效
    [attStr cc_addVerticalGlyph:0 range:NSMakeRange(0, attStr.length)];
    [attStr cc_textColor:UIColor.redColor range:NSMakeRange(0, attStr.length)];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: iOS 富文本可以通过使用 NSAttributedString 和 NSTextAttachment 类加载 GIF 图片,达到将富文本与动态效果结合的效果。 首先,需要将 GIF 图片转换为 NSData 格式,可通过使用 NSData 的类方法 dataWithContentsOfFile 或者 dataWithContentsOfURL 来实现。 接着,创建 NSTextAttachment 实例,并以 NSData 格式将 GIF 图片作为参数传入。然后,创建 NSMutableAttributedString 实例,并将富文本内容包含在其中。 最后,使用 UILabel、UITextView 或者 UIWebView 等组件来展示富文本内容,并加以控制动态效果的播放周期及重复次数等属性,达到更丰富的用户体验。 需要注意的是,在使用富文本加载 GIF 图片时,应考虑对应用性能及网络耗费等问题进行优化调整,使得应用流畅稳定,并能够节省用户移动数据流量等资源。 ### 回答2: iOS开发中,要加载gif动图作为富文本,可以使用如下的步骤: 1. 引入SDWebImage库:在项目中添加SDWebImage库,这是一个常用的图片加载库,可以方便地加载并显示网络上的图片。 2. 下载gif图片:从网络上找到合适的gif图片,并将其下载到本地。 3. 将gif图片添加到富文本中:使用SDWebImage提供的方法将gif图片添加到富文本中,可以使用`UIImage sd_animatedGIFWithData:`方法将本地的gif图片转换为UIImage对象,并使用该UIImage对象创建一个`NSTextAttachment`对象。 4. 将NSTextAttachment对象添加到NSAttributedString中:将创建好的NSTextAttachment对象添加到NSMutableAttributedString对象中,可以使用`appendAttributedString:`方法将其追加到NSMutableAttributedString对象的末尾。 5. 将NSAttributedString对象显示在界面上:通过UILabel、UITextView等界面控件,将NSMutableAttributedString对象显示在界面上,即可完成富文本加载gif的功能。 需要注意的是,为了保证gif动图的流畅播放,SDWebImage库会将gif图片展示为一系列的静态图片,然后再按照正确的帧率进行播放。另外,对于高性能的gif加载,也可以使用其他优化库,如FLAnimatedImage等。 综上所述,通过引入SDWebImage库、下载gif图片、将图片添加到富文本中,并将富文本显示在界面上等一系列步骤,即可实现在iOS中加载gif动图作为富文本显示的功能。 ### 回答3: 在iOS中,要加载GIF图像并将其显示在富文本中,我们可以采取以下步骤: 1. 首先,我们需要获取GIF图像文件的URL或路径。可以从互联网上下载或从应用程序的资源文件中获取。例如,如果GIF图像保存在应用程序的资源文件中,则可以使用`Bundle.main.url(forResource: "myGif", withExtension: "gif")`方法获取该文件的URL。 2. 接下来,我们需要将GIF图像文件加载到`Data`对象中,以便将其与`NSAttributedString`富文本一起使用。我们可以使用`Data(contentsOf: gifURL)`方法将URL转换为Data对象。 3. 然后,我们可以创建一个`NSTextAttachment`对象,并将GIF图像数据设置为其`image`属性。例如,可以使用`NSTextAttachment(image: UIImage(data: gifData)!)`来创建`NSTextAttachment`对象。 4. 然后,我们可以使用`NSAttributedString`的`append`方法将`NSTextAttachment`对象添加到富文本中,并设置其适当的位置。例如,可以使用`attributedString.append(NSAttributedString(attachment: textAttachment))`语句将`NSTextAttachment`对象添加到`attributedString`富文本字符串中。 5. 最后,我们可以将包含GIF图像的富文本字符串应用于文本视图或标签等UI元素,以便在界面上显示GIF图像。例如,对于UILabel,可以使用`label.attributedText = attributedString`将富文本字符串应用于标签。 综上所述,以上是利用iOS富文本加载GIF的简要步骤。通过将GIF图像文件加载到`Data`对象中,然后将其作为`NSTextAttachment`对象添加到富文本字符串中,我们可以在富文本中显示GIF图像,并将其应用于iOS界面中的相应UI元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值