精选文章 富文本控件

富文本控件

作者:weixin_34194379 时间: 2021-02-07 01:50:06
weixin_34194379 2021-02-07 01:50:06
【摘要】2019独角兽企业重金招聘Python工程师标准>>>       网络上的各种富文本控件总感觉和具体项目不太贴,所以我自己动手写了一个富文本控件,是用CoreText写的。现在开放出来供所有人借鉴和使用。我写了一些基本功能,你可以方便的任意加入自己想实现的功能。 
你可以任意的使用、修改、扩展这个控件,请不要删除作者信息 
使用时,别忘了引入CoreText库。 
演示效果如图 
 
 
...

  网络上的各种富文本控件总感觉和具体项目不太贴,所以我自己动手写了一个富文本控件,是用CoreText写的。现在开放出来供所有人借鉴和使用。我写了一些基本功能,你可以方便的任意加入自己想实现的功能。

你可以任意的使用、修改、扩展这个控件,请不要删除作者信息

使用时,别忘了引入CoreText库。

演示效果如图

富文本控件2


调用方法代码如下:

1、显示图片

- (void)showImage
{ UIFont *font = [UIFont systemFontOfSize:17]; SJRichTextView *richTextView = [[SJRichTextView alloc] initWithFrame:CGRectMake(100, 50, 200, 80)]; richTextView.textMaxWidth = 150; richTextView.textColor = [UIColor blackColor]; richTextView.font = font; NSString *imageText = [SJRichTextInterpreter imgTextWithUrl:@"demoImage.png" size:CGSizeMake(50, 50)]; richTextView.text = [NSString stringWithFormat:@"图片演示:%@", imageText]; [self.view addSubview:richTextView];
}

2、显示文字(支持按行数计算高度和计算总文字高度)

- (void)showText
{ UIFont *font = [UIFont systemFontOfSize:17]; SJRichTextView *richTextView = [[SJRichTextView alloc] initWithFrame:CGRectMake(100, 150, 200, 71)]; richTextView.textMaxWidth = 150; richTextView.textColor = [UIColor blackColor]; richTextView.font = font; richTextView.text = @"文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示文本演示"; [self.view addSubview:richTextView]; CGFloat minHeight = [richTextView heightForLineNumber:4]; NSLog(@"四行文字的高度是:%f", minHeight); CGFloat maxHeight = [richTextView heightForMaxLine]; NSLog(@"总文字高度是:%f", maxHeight);
}

3、显示表情

- (void)showEmotion
{ UIFont *font = [UIFont systemFontOfSize:17]; SJRichTextView *richTextView = [[SJRichTextView alloc] initWithFrame:CGRectMake(100, 300, 200, 80)]; richTextView.textMaxWidth = 150; richTextView.textColor = [UIColor redColor]; richTextView.font = font; richTextView.emotionIconWidth = font.lineHeight; richTextView.emotionIconHeight = font.lineHeight; richTextView.richTextViewDataSource = self; richTextView.text = @"表情演示:[唯美]"; [self.view addSubview:richTextView];
}

#pragma mark SJRichTextViewDataSource
- (NSString *)imagePathWithEmotionString:(NSString *)emotionString
{ if ([emotionString isEqualToString:@"唯美"]) { NSString *imagePath = [NSString stringWithFormat:@"%@/%@", [NSBundle mainBundle].resourcePath, @"demoImage.png"]; return imagePath; } return nil;
}

4、显示链接

- (void)showURL
{ UIFont *font = [UIFont systemFontOfSize:15]; SJRichTextView *richTextView = [[SJRichTextView alloc] initWithFrame:CGRectMake(50, 400, 300, 80)]; richTextView.textMaxWidth = 300; richTextView.textColor = [UIColor redColor]; richTextView.font = font; richTextView.richTextViewDelete = self; NSString *urlText = [SJRichTextInterpreter urlTextWithUrl:@"http://www.baidu.com" DisplayString:@"百度"]; richTextView.text = [NSString stringWithFormat:@"右边的文字是链接,点点看:%@", urlText]; [self.view addSubview:richTextView];
}

#pragma mark SJRichTextViewDelegate
- (void)touchUrl:(NSString *)url
{ NSURL *goURL = [NSURL URLWithString:url]; if (goURL == nil) { return; } [[UIApplication sharedApplication] openURL:goURL];
}

demo项目下载地址:http://pan.baidu.com/share/home?uk=4012188959#category/type=0

转载于:https://my.oschina.net/u/1418722/blog/353095

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:cocos2dx程序android平台下自更新策略

下一篇:获取textarea中的值用value和innerHTML的区别

您可能感兴趣

  • TreeView控件与数据窗结合控件原理

    在某系统的实现中,遇到了物料清单的编辑及显示问题,要求能够按照树形结构显示某产品的详细构成情况。例如,产品分为几个大总成,各总成下有若干装置、部件,各部件下可能有小总成、部件、零件等等,这样就可能形成一棵很复杂的树结构。   而且要求能够进行复杂的查找,过滤等操作,因此与数据窗的查找(find)及过滤(filter)、排序(sort)等结合起来是非常理想的控件构建方式。在PB中,通过树与数据...

  • VB6.0动态加载ActiveX控件漫谈

    熟悉VB的朋友对使用ActiveX控件一定不会陌生,众多控件极大地方便了编程,但唯一的缺陷是不能动态加载控件,必须在设计时通过引用,将控件放置在窗体上。VB6.0已能够解决该问题,只是帮助中没有明确说明,并且没有描述到一些关键功能,由于以前的版本中可以动态创建进程外服务:如果对象是外部可创建的,可在 Set 语句中用 New 关键字、CreateObject 或 GetObject 从部件外...

  • --=== 利用微软网格控件进行编辑输入==--

    利用微软网格控件进行编辑输入(作者:王莉梅 2001年01月18日 16:51)  Visual Basic中提供了许多标准控件和定制控件,每一个控件都可以提供一组特殊的用户界面和编程能力。充分利用每一个控件的特性和方法,可以使编程工作更加容易、简单。 微软网格控件MSFlexGrid是个定制控件。使用微软网格控件,可以按行列顺序显示正文、数字和图片,就象电子表格一样。网格的高度、宽度和其它...

  • 关于图片与文本同存在数据库中的具体思路

    关于图片与文本同存在数据库中的具体思路 首先,你的表单的类型设为 ACTION="uploadresult.asp" METHOD=POST> Please choose a picture to upload:然后在下一页,用分离的办法先分出文本,此时不能用request.form,应变为FormData = Request.BinaryRead( FormSize ) FormSize ...

  • C++ Builder中保持控件的位置及大小

    C++ Builder/Delphi是Inprise(原Borland)公司广受欢迎的可视化C++/Pascal开发工具,利用它可极大地加快应用程序的开发速度。但是,也正因为其是可视化编程工具,将控件拖放到Form后,控件的位置就固定死了。随着Form的大小或屏幕分辨率的改变,控件和Form本身的位置往往变得非常混乱。本文将介绍一些正确定位控件及Form的方法。       利用OnResi...

  • VC++中具有3D文本的按纽控件

    用具有OwnerDraw风格实现上述目的。 1.运行AppWizard生成一个基于对话框的test工程,在对话框中加入一个CButton控件。在CButton控件的General属性页将控件的ID改为IDC_3DTEXTBTN,Caption改为“谁与争疯”,在控件Styles属性页选中OwnerDraw,其余设置保持默认。 2.用classwizard创建一个新类:C3dTextBut...

  • Delpi在MDI窗口中显示图形控件及指定背景的解决方案

    在使用MDI介面时,有时候需要在MDI客户窗口中显示一些图形或软件封面,使得软件介面不会显得空旷,软件功能也能一目了然。然而在Delphi中并没有直接给出这些接口。在MDI窗体中放入任何图形控件在运行时都不能显示。因此需要对MDI窗体进行改造。申明:    本方案仅针对MDI窗体,如果应用在非MDI窗体中,后果难说,你自已试试吧。    记住,窗体的FormStyle属性要设置为:fsMDI...

  • 文本编辑器源文件(java语言)

    /版权所有heljimport java.awt.*;import java.io.*;import java.util.*;//W_color;C_str;C_file;C_back;W_find;W_fondinterface I_Method{    public void setQuit();    public void setfont(Font f);    public voi...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
富文本控件介绍:华为云为您免费提供富文本控件在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多富文本控件的相关内容。| 移动地址: 富文本控件 | 写博客