如果要在富文本中添加图片的话,用UITextKit才能实现。

什么是UITextKit:它就是处理富文本的框架。

什么时候使用UITextKit:比如要实现图文混搭的节目。

在gitHub中 https://github.com/YouXianMing/BookTextView 可以下载一个关于UITextKit的Demo。

以下是ViewController中的类:

 #import "ViewController.h"
#import "ParagraphAttributes+Constructor.h"
#import "ExclusionView.h"
#import "BookTextView.h" #define Width [UIScreen mainScreen].bounds.size.width
#define Height [UIScreen mainScreen].bounds.size.height @interface ViewController ()<UITextViewDelegate> @property (strong, nonatomic) BookTextView *bookView; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; // 读取文本
NSString *text = [NSString stringWithContentsOfFile:[NSBundle.mainBundle URLForResource:@"lorem" withExtension:@"txt"].path
encoding:NSUTF8StringEncoding
error:nil]; // 初始化bookView
self.bookView = [[BookTextView alloc] initWithFrame:CGRectMake(, , Width - , Height - )];
self.bookView.textString = text; // 设置段落样式
self.bookView.paragraphAttributes = [ParagraphAttributes qingKeBengYue]; // 设置富文本
self.bookView.attributes = @[[ConfigAttributedString foregroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.75f]
range:NSMakeRange(, )],
[ConfigAttributedString font:[UIFont fontWithName:QingKeBengYue size:.f]
range:NSMakeRange(, )]]; // 加载图片
ExclusionView *exclusionView = [[ExclusionView alloc] initWithFrame:CGRectMake(.f, , , )];
self.bookView.exclusionViews = @[exclusionView];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:exclusionView.bounds];
imageView.image = [UIImage imageNamed:@"demo"];
[exclusionView addSubview:imageView]; // 构建view
[self.bookView buildWidgetView];
[self.view addSubview:self.bookView]; // 延时0.01s执行
[self performSelector:@selector(event)
withObject:nil
afterDelay:0.01];
} - (void)event {
[self.bookView moveToTextPercent:0.00];
} @end
 
 
 
 

《极客学院 --NSAttributedString 使用详解-4-UITextKit 简介》学习笔记(待处理)的更多相关文章

  1. Ubuntu linux下部署golang配置环境,极客学院 无闻讲的安装配置是错的,折腾我好几遍,真是有点坑

    开始按极客学院无闻讲的做,弄了几遍都不行,最后发现是错的,别人告诉我这是mac下的virtualbox是这样的,不管怎样,被坑的不浅. 虽然sudo apt install golang-go 就能安 ...

  2. 基于requests实现极客学院课程爬虫

    背景 本文主要是为了完成极客学院课程<Python 单线程爬虫>中讲师布置的实战作业. 开发环境 操作系统:windows 10 Python :Python 2.7 IDE:PyChar ...

  3. python scrapy版 极客学院爬虫V2

    python scrapy版 极客学院爬虫V2 1 基本技术 使用scrapy 2 这个爬虫的难点是 Request中的headers和cookies 尝试过好多次才成功(模拟登录),否则只能抓免费课 ...

  4. python极客学院爬虫V1

    定向爬取极客学院视频,原本只有年费VIP只能下载,经过分析,只要找个免费体验VIP即可爬取所有视频 涉及的基本技术:python xpath 正则 com+ 通过python调用迅雷从组件,实现自动创 ...

  5. 【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎

    Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九, ...

  6. scribefire 多博客管理利器 安装详解

    scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...

  7. scrapy爬取极客学院全部课程

    # -*- coding: utf-8 -*- # scrapy爬取极客学院全部课程 import scrapy from pyquery import PyQuery as pq from jike ...

  8. 【极客学院-idea教程】

    极客学院idea教程: http://whudoc.qiniudn.com/2016/IntelliJ-IDEA-Tutorial/index.html

  9. maven介绍 极客学院

    来自极客学院 Apache Maven 是一套软件工程管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven - 概述 M ...

  10. 极客学院年VIP卡原价260的F码,200出售

    F码是中国最大的IT职业在线教育平台——极客学院推出的VIP时间兑换码,凭此可在极客学院官网兑换年VIP,畅享平台上所有IT技术课程. 购买请点击 http://www.bejson.com/othe ...

随机推荐

  1. Linux shell tee指令学习

    转载自:http://blog.163.com/xujian900308@126/blog/static/12690761520129911304568/   tee tee:读取标准输入的数据,并将 ...

  2. Teehan & Lax 发布 iOS 7 GUI PSD 模板,免费下载

    在 iOS 7 发布不久,Teehan & Lax 就发布了 iOS 7 GUI PSD 模板.该网站分享众多 PSD 模板素材,这些精美的 PSD 界面模板在制作界面原型非常有用,能够帮助设 ...

  3. [编辑器]走上atom之路1

    祝大家新年快乐 我就是来卖个萌,逃- 正文 我最开始用atom是因为它看起来比较酷,我工作中主力还是使用pycharm,毕竟atom只是一个编辑器.我一 般只是用atom来写Markdown的文件.随 ...

  4. [C#] 语法之Attribute

    在c#中,定义类的成员,可以定义Property称为属性.Attribute就称为特性. 在FCL中,有内置的Attribute.如: Condition[Attribute]:在什么条件可以调用.( ...

  5. sprint3(第四天)

    今天继续完成前台和后台的整合 燃尽图:

  6. sprint演示Scrum 项目7.0

    1.坚持所有的sprint都结束于演示. 团队的成果得到认可,会感觉很好. 其他人可以了解你的团队在做些什么,并得到重要反馈. 演示是一种社会活动,不同的团队可以在这里相互交流,讨论各自的工作.这很有 ...

  7. 【EF 译文系列】模型和数据库连接

    原文链接:Connections and Models 本篇文章主要包括 Entity Framework  是如何选择数据库进行连接,以及我们如何去改变它的连接.无论是通过 Code First 还 ...

  8. U3D自定义Inspector项未触发保存事件的解决方案

    1.问题描述与解决方案 1.1.说明 应该只有起步做U3D编辑器插件的部分同行需要了解本文. 该问题源于在做UI插件的时候,发现Inspector面板上手动修改值后,没有触发U3D编辑器本身的修改事件 ...

  9. PHP实现过滤各种HTML标签

    首先分享一些比较常见的 $str=preg_replace("/<s*imgs+[^>]*?srcs*=s*(''|")(.*?)\1[^>]*?/?s*> ...

  10. [PE结构分析] 9.导出表 IMAGE_EXPORT_DIRECTORY

    typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; // 未使用,总为0 DWORD TimeDateStamp; // 文 ...