iOS开发之YYKit丰富的组件,如:YYText

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

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

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

安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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 架构对比:

YYText 原生支持的属性

DemoAttribute NameClass
TextAttachmentYYTextAttachment
TextHighlightYYTextHighlight
TextBindingYYTextBinding
TextShadow
TextInnerShadow
YYTextShadow
TextBorderYYTextBorder
TextBackgroundBorderYYTextBorder
TextBlockBorderYYTextBorder
TextGlyphTransformNSValue(CGAffineTransform)
TextUnderlineYYTextDecoration
TextStrickthroughYYTextDecoration
TextBackedStringYYTextBackedString

YYText 支持的 CoreText 属性

DemoAttribute NameClass
FontUIFont(CTFontRef)
KernNSNumber
StrokeWidthNSNumber
StrokeColorCGColorRef
ShadowNSShadow
LigatureNSNumber
VerticalGlyphFormNSNumber(BOOL)
WritingDirectionNSArray(NSNumber)
RunDelegateCTRunDelegateRef
TextAlignmentNSParagraphStyle
(NSTextAlignment)
LineBreakModeNSParagraphStyle
(NSLineBreakMode)
LineSpacingNSParagraphStyle
(CGFloat)
ParagraphSpacing
ParagraphSpacingBefore
NSParagraphStyle
(CGFloat)
FirstLineHeadIndentNSParagraphStyle
(CGFloat)
HeadIndentNSParagraphStyle
(CGFloat)
TailIndentNSParagraphStyle
(CGFloat)
MinimumLineHeightNSParagraphStyle
(CGFloat)
MaximumLineHeightNSParagraphStyle
(CGFloat)
LineHeightMultipleNSParagraphStyle
(CGFloat)
BaseWritingDirectionNSParagraphStyle
(NSWritingDirection)
DefaultTabInterval
TabStops
NSParagraphStyle
CGFloat/NSArray(NSTextTab)

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


参考文章:

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hbblzjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值