ios html转换字符串,iOS 开发_NSAtrributeString与HTML之间的相互转换

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

1.应用场景:

有些编辑器相关的地方需要我们处理富文本与超文本之间的关系

2.实现目标:

实现富文本与超文本之间的相互转化

3.代码说明:

/** 富文本NSAtrributeString格式转换为超文本HTML格式*/

- (NSString *)htmlStringByAttributeString:(NSAttributedString *)htmlAttributeString {

NSString *htmlString;

NSDictionary *exportParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,

NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]

};

NSData *htmlData = [htmlAttributeString dataFromRange:NSMakeRange(0, htmlAttributeString.length) documentAttributes:exportParams error:nil];

htmlString = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];

return htmlString;

}

/** 超文本HTML格式转换为富文本AtrributeString格式*/

- (NSAttributedString *)attributeStringByHtmlString:(NSString *)htmlString {

NSAttributedString *attributeString;

NSData *htmlData = [htmlString dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *importParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,

NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]

};

NSError *error = nil;

attributeString = [[NSAttributedString alloc] initWithData:htmlData options:importParams documentAttributes:NULL error:&error];

return attributeString;

}

更新区>>>

看到评论区的问题,我试验了一下:

aa92f597ed55

image.png

因为当初用到上述API的时候,我是在英文模式下开发和使用的一个旅游软件--- 没有出现评论区的问题

斜体消失的原因-并不是API有问题,应该是iOS系统对中文的解析不是很到位---o(* ̄︶ ̄*)o

暂时的解决方案:查了一些资料,一般都是通过旋转一定的角度来支撑中文斜体的,但是感觉这个要是应用大篇幅的Html上-可能解析html就有点儿繁琐了~~~

暂时无好的解决方案-有时间我会在研究一波--- 继续写Vue项目去了...┭┮﹏┭┮

CGAffineTransform matrix = CGAffineTransformMake(1, 0, tanf(10 * (CGFloat)M_PI / 180), 1, 0, 0);

UIFontDescriptor *desc = [UIFontDescriptor fontDescriptorWithName:[UIFont systemFontOfSize:30].fontName matrix:matrix];

label.font = [UIFont fontWithDescriptor:desc size:20];

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值