PINCHTextRendering 0.5.9

PINCHTextRendering 0.5.9

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布日期上次发布2016年1月

Pim Coumans维护。




  • 作者
  • Pim Coumans

为所有人准备的CoreText

受TextKit启发的简单CoreText封装层。将多字符串堆叠在一起,并在视图中显示或手动在drawRect:实现中显示。需要绘制大量文本(如特定手表?)这可能很有用。

Example

由两个主要对象PINCHTextLayoutPINCHTextRenderer组成,这个小的框架应该使将字符串堆叠绘制到屏幕上变得容易得多,每个字符串都有自己的属性。框架添加了一些对我们自己项目所需的功能(如下划线裁剪),但设计得尽可能通用。如图所示,将布局包裹在矩形中也不成问题。

可以使用PINCHTextView、类似于UILabel的PINCHTextLabel或在您的drawRect:实现中手动绘制布局对象的渲染。将textView中的debugRendering设置为YES显示每个布局和每个单独行的绘制位置

Debugging example

使用

要运行示例项目,首先从仓库克隆,然后从Example目录中运行pod install

为了在屏幕上获得最基本的布局,请尝试以下操作

PINCHTextLayout *layout = [[PINCHTextLayout alloc] initWithString:@"Hello world!" attributes:@{PINCHTextLayoutFontAttribute: [UIFont systemFontOfSize:17]} name:@"hello"];
PINCHTextView *textView = [[PINCHTextView alloc] initWithFrame:self.view.bounds textLayouts:@[layout]];
[self.view addSubview:textView];

要在上下文中绘制布局(如从drawRect:),以下可能设置您正确的路径

PINCHTextRenderer *renderer = [[PINCHTextRenderer alloc] init];
renderer.textLayouts = @[layout];
[renderer renderTextLayoutsInContext:context withRect:rect];

添加一个矩形来包裹布局不是问题

CGRect clipRect = CGRectMake(10, 50, 100, 100);
self.textView.renderer.clippingRect = clipRect;

在所提供的示例应用中,点击屏幕并移动触摸添加裁剪矩形到textView。

PINCHTextRenderer实例将通过PINCHTextRendererDelegate协议通知您其进度。这允许您在渲染布局后面、上面或围绕它们绘制额外的图形。以下列出的委托方法可以绘制布局后面的容器,例如。

- (void)textRenderer:(PINCHTextRenderer *)textRenderer willRenderTextLayouts:(NSArray *)textLayouts inBoundingRect:(CGRect)rect withContext:(CGContextRef)context;

要求

PINCHTextRendering应该在iOS 6及更高版本上运行,尽管如果所有NSAttributedString属性都替换为它们的CoreText对应项,iOS 5的支持可能也是可行的。但在创建时这似乎不是必要的。

安装

将以下导入添加到您的文件中,您就可以访问最常用的类了

#import <PINCHTextRendering/PINCHTextRendering.h>

作者

Pim Coumans,[email protected]

许可证

PINCHTextRendering遵从MIT许可证。更多信息请参阅LICENSE文件。