天天看点

iOS开发之YYKit丰富的组件,如:YYText安装注意

今天主要介绍一下YYKit,这是一个对于快速开发较为丰富的第三方库。

YYKit 是一组功能丰富的 iOS 组件。GitHub:https://github.com/ibireme/YYKit

为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,从中拆分出以下独立组件:

  • YYModel — 高性能的 iOS JSON 模型框架。
  • YYCache — 高性能的 iOS 缓存框架。
  • YYImage — 功能强大的 iOS 图像框架。
  • YYWebImage — 高性能的 iOS 异步图像加载框架。
  • YYText — 功能强大的 iOS 富文本框架。
  • YYKeyboardManager — iOS 键盘监听管理工具。
  • YYDispatchQueuePool — iOS 全局并发队列管理工具。
  • YYAsyncLayer — iOS 异步绘制与显示的工具。
  • YYCategories — 功能丰富的 Category 类型工具库。

安装

CocoaPods

  1. 在 Podfile 中添加

    pod 'YYKit'

  2. 执行

    pod install

    pod update

  3. 导入 <YYKit/YYKit.h>。

Carthage

  1. 在 Cartfile 中添加

    github "ibireme/YYKit"

  2. 执行

    carthage update --platform ios

    并将生成的 framework 添加到你的工程。
  3. 导入 <YYKit/YYKit.h>。
  4. 注意: carthage framework 并没有包含 webp 组件。如果你需要支持 webp,可以用 CocoaPods 安装,或者手动安装。

手动安装

  1. 下载 YYKit 文件夹内的所有内容。
  2. 将 YYKit 内的源文件添加(拖放)到你的工程。
  3. NSObject+YYAddForARC.m

    NSThread+YYAdd.m

    添加编译参数

    -fno-objc-arc

  4. 链接以下 frameworks:
    • UIKit
    • CoreFoundation
    • CoreText
    • CoreGraphics
    • CoreImage
    • QuartzCore
    • ImageIO
    • AssetsLibrary
    • Accelerate
    • MobileCoreServices
    • SystemConfiguration
    • sqlite3
    • libz
  5. 如果你需要支持 WebP,可以将

    Vendor/WebP.framework

    (静态库) 加入你的工程。
  6. 导入

    YYKit.h

注意

开发者希望调用 API 时,有着和调用系统自带 API 一样的体验,所以并没有为 Category 方法添加前缀。而且开发者已经用工具扫描过这个项目中的 API,确保没有对系统 API 产生影响,但即使这样没有前缀的 Category 也可能会带来其他麻烦。因此开发者不太推荐直接使用

YYKit

这个库,应该先尝试一下上面那些拆分出来的独立组件。

下面,我就以YYText为例简单介绍一下:(GitHub:https://github.com/ibireme/YYText)

功能强大的 iOS 富文本编辑与显示框架。

特性:

  • API 兼容 UILabel 和 UITextView
  • 支持高性能的异步排版和渲染
  • 扩展了 CoreText 的属性以支持更多文字效果
  • 支持 UIImage、UIView、CALayer 作为图文混排元素
  • 支持添加自定义样式的、可点击的文本高亮范围
  • 支持自定义文本解析 (内置简单的 Markdown/表情解析)
  • 支持文本容器路径、内部留空路径的控制
  • 支持文字竖排版,可用于编辑和显示中日韩文本
  • 支持图片和富文本的复制粘贴
  • 文本编辑时,支持富文本占位符
  • 支持自定义键盘视图
  • 撤销和重做次数的控制
  • 富文本的序列化与反序列化支持
  • 支持多语言,支持 VoiceOver
  • 支持 Interface Builder
  • 全部代码都有文档注释

YYText 和 TextKit 架构对比:

iOS开发之YYKit丰富的组件,如:YYText安装注意

YYText 原生支持的属性

Demo Attribute Name Class
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextAttachment YYTextAttachment
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextHighlight YYTextHighlight
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextBinding YYTextBinding
iOS开发之YYKit丰富的组件,如:YYText安装注意

TextShadow

TextInnerShadow

YYTextShadow
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextBorder YYTextBorder
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextBackgroundBorder YYTextBorder
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextBlockBorder YYTextBorder
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextGlyphTransform NSValue(CGAffineTransform)
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextUnderline YYTextDecoration
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextStrickthrough YYTextDecoration
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextBackedString YYTextBackedString

YYText 支持的 CoreText 属性

Demo Attribute Name Class
iOS开发之YYKit丰富的组件,如:YYText安装注意
Font UIFont(CTFontRef)
iOS开发之YYKit丰富的组件,如:YYText安装注意
Kern NSNumber
iOS开发之YYKit丰富的组件,如:YYText安装注意
StrokeWidth NSNumber
iOS开发之YYKit丰富的组件,如:YYText安装注意
StrokeColor CGColorRef
iOS开发之YYKit丰富的组件,如:YYText安装注意
Shadow NSShadow
iOS开发之YYKit丰富的组件,如:YYText安装注意
Ligature NSNumber
iOS开发之YYKit丰富的组件,如:YYText安装注意
VerticalGlyphForm NSNumber(BOOL)
iOS开发之YYKit丰富的组件,如:YYText安装注意
WritingDirection NSArray(NSNumber)
iOS开发之YYKit丰富的组件,如:YYText安装注意
RunDelegate CTRunDelegateRef
iOS开发之YYKit丰富的组件,如:YYText安装注意
TextAlignment

NSParagraphStyle

(NSTextAlignment)

iOS开发之YYKit丰富的组件,如:YYText安装注意
LineBreakMode

NSParagraphStyle

(NSLineBreakMode)

iOS开发之YYKit丰富的组件,如:YYText安装注意
LineSpacing

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意

ParagraphSpacing

ParagraphSpacingBefore

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
FirstLineHeadIndent

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
HeadIndent

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
TailIndent

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
MinimumLineHeight

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
MaximumLineHeight

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
LineHeightMultiple

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText安装注意
BaseWritingDirection

NSParagraphStyle

(NSWritingDirection)

iOS开发之YYKit丰富的组件,如:YYText安装注意

DefaultTabInterval

TabStops

NSParagraphStyle

CGFloat/NSArray(NSTextTab)

常用到的效果如下图所示:

iOS开发之YYKit丰富的组件,如:YYText安装注意

参考文章:

1.http://www.jianshu.com/p/60aee32ade55?nomobile=yes

2.http://www.cnblogs.com/lujianwenance/p/5716804.html

3.TTTAttributedLabel使用:http://www.jianshu.com/p/b457a49fac3d

TextDemo:http://download.csdn.net/detail/hbblzjy/9888702

继续阅读