TextKit简单示例
TextKit简单示例
效果
源码
https://github.com/YouXianMing/Animations
// // TextKitLoadImageController.m // Animations // // Created by YouXianMing on 16/4/10. // Copyright © 2016年 YouXianMing. All rights reserved. // #import "TextKitLoadImageController.h" #import "AttributedStringInitConfig+Constructor.h" #import "JSAnimatedImagesView.h" #import "UIView+SetRect.h" #import "GCD.h"@interface TextKitLoadImageController () <JSAnimatedImagesViewDataSource>@property (nonatomic, strong) JSAnimatedImagesView *JSView; @property (nonatomic, strong) NSArray *JSViewDataSource;@end@implementation TextKitLoadImageController- (void)setup {[super setup];NSString *str = @"这是发生在阿拉斯加麦肯莱国家公园的事,这个公园有日本的四国那么大,却只有一个为观光客开设的游客中心,位置就在原野正中央,公园唯一的一条道路上,每天都有许多观光客利用这个游憩场所。\n这附近是北极地松鼠的栖息地,所以每当有观光客下车,地松鼠就会跑过来讨东西吃,完全不怕人,公园管理员一再呼吁游客不要喂食地松鼠,但不管来自哪个国家的人,看到可爱机伶的地松鼠,还是会忍不住丢东西给它们吃。\n有一年,公园里竖着一个奇怪的告示牌。为什么说它奇怪呢?因为这个告示牌只有十公分高,不弯腰下去的话根本看不到,牌子开头就写着:“地松鼠们!”原来,这是写给地松鼠看的警告。\n“......你们再一直吃着人类给的食物,就会越来越胖,最后跑不动,就只好被金雕或是熊吃掉......”一想到好奇的观光客发出苦笑的脸,让我不禁莞尔。又想到在日本的动物园中,看到游客不断地往熊的笼子里丢食物,挂在旁边的“请勿喂食”标示,看起来是那么的无力。\n有人看到动物就自然而然想喂食,这种事情大家都清楚,但也有人率直的认为那是不对的行为。坚持真理是很辛苦的,不如多点想象空间,用小小的幽默来劝服人心。";NSTextStorage *storage = [[NSTextStorage alloc] initWithString:str attributes:[AttributedStringInitConfig heitiSC]];// 管理器NSLayoutManager *layoutManager = [NSLayoutManager new];[storage addLayoutManager:layoutManager];// 显示的容器(与UITextView对应)NSTextContainer *textContainer = [NSTextContainer new];CGSize size = CGSizeMake(Width - 20, MAXFLOAT);textContainer.size = size;[layoutManager addTextContainer:textContainer];UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, Width - 20, self.contentView.height - 20)textContainer:textContainer];textView.scrollEnabled = YES;textView.layer.borderWidth = 0.5f;textView.layer.borderColor = [[UIColor grayColor] colorWithAlphaComponent:0.15f].CGColor;textView.editable = NO;textView.selectable = NO;textView.layer.masksToBounds = NO;textView.showsVerticalScrollIndicator = NO;textView.layer.masksToBounds = YES;[self.contentView addSubview:textView];CGRect imagesFrame = CGRectMake(60, 38, textView.width - 60 * 2, 170);textContainer.exclusionPaths = @[[self bezierPathWithFrame:imagesFrame]];[GCDQueue executeInMainQueue:^{self.JSViewDataSource = @[[UIImage imageNamed:@"pic_1"],[UIImage imageNamed:@"pic_2"],[UIImage imageNamed:@"pic_3"],[UIImage imageNamed:@"pic_4"]];self.JSView = [[JSAnimatedImagesView alloc] initWithFrame:imagesFrame];self.JSView.alpha = 0.f;self.JSView.transitionDuration = 2.f;self.JSView.dataSource = self;self.JSView.layer.masksToBounds = YES;[textView addSubview:self.JSView];[UIView animateWithDuration:2.f animations:^{self.JSView.alpha = 1.f;}];} afterDelaySecs:0.5f]; }- (UIBezierPath *)bezierPathWithFrame:(CGRect)frame {return [UIBezierPath bezierPathWithRect:frame]; }- (NSUInteger)animatedImagesNumberOfImages:(JSAnimatedImagesView *)animatedImagesView {return self.JSViewDataSource.count; }- (UIImage *)animatedImagesView:(JSAnimatedImagesView *)animatedImagesView imageAtIndex:(NSUInteger)index {return self.JSViewDataSource[index]; }@end
转载于:https://www.cnblogs.com/YouXianMing/p/5375649.html
TextKit简单示例相关推荐
- python文本处理实例_Python 文件处理的简单示例
这篇文章主要为大家详细介绍了Python 文件处理的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 相关的AP ...
- python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例
这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...
- python简单单元测试示范卷_Python 单元测试的简单示例
这篇文章主要为大家详细介绍了Python 单元测试的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 以前我是不 ...
- python二分法求解_Python使用二分法求平方根的简单示例
这篇文章主要为大家详细介绍了Python使用二分法求平方根的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 使 ...
- Unity 简单示例代码和向导/Unity Aplication Block
Unity 简单示例代码和向导 关于Unity 的说明和下载地址,请访问[微软控制反转和依赖注入容器Unity 1.0发布] http://forum.entlib.com/Default.aspx? ...
- php定时刷新token,PHP 定时任务获取微信access_token的简单示例
搜索热词 感兴趣PHP 定时任务获取微信access_token的简单示例的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. 最近开发微信公众平台,公众号调用各接口时都需使用access_ ...
- python 搭建的http 动态服务器_Python 创建HTTP服务器的简单示例
这篇文章主要为大家详细介绍了Python 创建HTTP服务器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...
- python简单装饰器_python装饰器的简单示例
这篇文章主要为大家详细介绍了python装饰器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 装饰器的语法以 ...
- javascript worker 多线程 简单示例
javascript worker 多线程 简单示例 项目结构 主线程 index.html <!DOCTYPE html> <html lang="en"> ...
最新文章
- 魔改宜家灯泡当主机,玩转《毁灭战士》无压力!网友:远超我家第一台电脑...
- linux more 下一页_Linux学习笔记
- 国产嵌入式操作系统发展思考
- 阿里云视频点播解决方案使用教程
- Caused by: org.apache.catalina.LifecycleException: A child container failed during start
- android下载图片服务,Android中的背景图片下载需要帮助吗?
- collection集合 地址_有容乃大--Java 集合(List/Set/Map)
- MyBlog前端开发2
- JavaScript中的流程控制语句
- HM个性化Recommendations--kaggle推荐比赛
- mysql cpu 100%_mysql占用资源CPU超过100%解决方法
- 4G模块配置、概念、调试记录
- LINQ:使用join进行联接
- 语言中的历史——汉语和突厥语的纠缠
- “谷歌百度一键搜索” -- 最方便的Chrome搜索插件
- 一个html5表格代码
- WebMatrix开发ASP.NET简易教程
- 国网配电站房智能辅控系统改造无人值守
- 数据库关系模型的三类完整性约束
- [思维导图学习四] 思维导图的优势与作用