ios 怎么改变html富文本格式

ios 怎么改变html富文本格式,第1张

简单来说,是通过控件来完成的,而这些控件都封装在UIKit框架中(对于Mac OS X是AppKit框架),在UIKit中常用来在屏幕上显示字符串的控件有3个: UILabel UITextField UITextView然而这些控件本身对文本的展现方式很单一,通常仅仅能够控制字体样式、大小、颜色、加粗、斜体等等,而对于行距控制,字距控制,段落控制等高级功能却无能为力。此时不免要提起一个非常强大的文本排版框架CoreText.framework。 CoreText框架是基于 iOS 3.2+ 和 OSX 10.5+ 的一种能够对文本格式和文本布局进行精细控制的文本引擎。它良好的结合了 UIKit 和 Core Graphics/Quartz:UIKit 的 UILabel 允许你通过在 IB 中简单的拖曳添加文本,但你不能改变文本的颜色和其中的单词。 Core Graphics/Quartz几乎允许你做任何系统允许的事情,但你需要为每个字形计算位置,并画在屏幕上。

实现:1、首次图文混编,输出是html标签的字符串;

            2、将html标签的内容再次编辑;

创建编辑控制器

.h文件

@property (nonatomic,strong)NSString *inHtmlString

block是将编辑的内容返回上个页面 *** 作

@property (nonatomic, copy)void (^postBlock)(NSString *htmlString)

.m文件

JavaScriptCore/JavaScriptCore.h

WebKit/WebKit.h

实现WKWebView的代理及相册的代理(懒得弄。用的系统相册)

NSString*_htmlString//保存输出的富文本

    NSMutableArray*_imageArr//保存添加的图片

@property (nonatomic, strong) WKWebView *webView

加载写好的 .html文件 给个简易版本的即可

NSBundle *bundle = [NSBundle mainBundle]

    NSURL*indexFileURL = [bundleURLForResource:@"richTextEditor"withExtension:@"html"]

    [self.webView loadRequest:[NSURLRequest requestWithURL:indexFileURL]]

创建一个button 选择图片,给个点击事件

[btn1 addTarget:self action:@selector(addImage) forControlEvents:UIControlEventTouchUpInside]

创建一个button 保存html字符串,给个点击事件

[btn2 addTarget:self action:@selector(printHTML) forControlEvents:UIControlEventTouchUpInside]

- (void)printHTML{

    [self.webView evaluateJavaScript:@"document.getElementById('content').innerHTML" completionHandler:^(id _Nullable result, NSError * _Nullable error) {

        NSLog(@"html=%@",result)

        !self.postBlock?:self.postBlock(result)

        [self.navigationController popViewControllerAnimated:YES]

    }]

}

- (void)addImage{

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]

    imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary

    imagePickerController.delegate=self

    [self presentViewController:imagePickerController animated:YES completion:nil]

}

实现相册代理方法

#pragma mark - ImagePickerController Delegate

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

    UIImage * image = [info objectForKey:UIImagePickerControllerOriginalImage]

    NSData *data = UIImagePNGRepresentation(image)

    if(2*1024*1024>[datalength]) {

        data =UIImageJPEGRepresentation(image,0.6)

    }else{

    }

    UIImage*resultImage = [UIImageimageWithData:data]

    NSString *imagePath = [NSString stringWithFormat:@"%@", [info objectForKey:UIImagePickerControllerImageURL]]//本地图片路径

    [datawriteToFile:imagePathatomically:YES]

此处是将已添加的图片上传至你们的服务器

上传成功后执行

            NSString*url =服务器图片地址

            NSString*script = [NSStringstringWithFormat:@"window.insertImage('%@', '%@')", imagePath, url]

            NSDictionary*dic =@{@"url":url,@"image":image,@"name":imagePath}

            [_imageArraddObject:dic]

            [self.webViewevaluateJavaScript:scriptcompletionHandler:^(id_Nullableresult,NSError*_Nullableerror) {

            }]

            [self dismissViewControllerAnimated:YES completion:nil]

}

- (void)viewDidLoad

{

    [super viewDidLoad]

    

    NSString *strHTML = @"<p>你好</p><p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp这是一个例子,请显示</p><p>外加一个table</p><table><tbody><tr class=\"firstRow\"><td valign=\"top\" width=\"261\">aaaa</td><td valign=\"top\" width=\"261\">bbbb</td><td valign=\"top\" width=\"261\">cccc</td></tr></tbody></table><p><br/></p>"

    

    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame]

    [self.view addSubview:webView]

    

    [webView loadHTMLString:strHTML baseURL:nil]

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6112062.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存