首页 > 其他分享 >iOS开发之YYKit丰富的组件,如:YYText

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

时间:2023-08-14 22:02:57浏览次数:40  
标签:YYText YYKit iOS 支持 文本 CGFloat

今天主要介绍一下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
  1. 如果你需要支持 WebP,可以将 Vendor/WebP.framework(静态库) 加入你的工程。
  2. 导入 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


TextAttachment

YYTextAttachment


TextHighlight

YYTextHighlight


TextBinding

YYTextBinding

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


TextShadow

TextInnerShadow

YYTextShadow

iOS开发之YYKit丰富的组件,如:YYText_富文本_03


TextBorder

YYTextBorder

iOS开发之YYKit丰富的组件,如:YYText_富文本_04


TextBackgroundBorder

YYTextBorder

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


TextBlockBorder

YYTextBorder

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


TextGlyphTransform

NSValue(CGAffineTransform)

iOS开发之YYKit丰富的组件,如:YYText_高性能_07


TextUnderline

YYTextDecoration

iOS开发之YYKit丰富的组件,如:YYText_富文本_08


TextStrickthrough

YYTextDecoration

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


TextBackedString

YYTextBackedString

YYText 支持的 CoreText 属性

Demo

Attribute Name

Class

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


Font

UIFont(CTFontRef)

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


Kern

NSNumber

iOS开发之YYKit丰富的组件,如:YYText_高性能_12


StrokeWidth

NSNumber

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


StrokeColor

CGColorRef

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


Shadow

NSShadow

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


Ligature

NSNumber

iOS开发之YYKit丰富的组件,如:YYText_富文本_16


VerticalGlyphForm

NSNumber(BOOL)

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


WritingDirection

NSArray(NSNumber)

iOS开发之YYKit丰富的组件,如:YYText_富文本_18


RunDelegate

CTRunDelegateRef

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


TextAlignment

NSParagraphStyle

(NSTextAlignment)

iOS开发之YYKit丰富的组件,如:YYText_富文本_20


LineBreakMode

NSParagraphStyle

(NSLineBreakMode)

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


LineSpacing

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText_高性能_22


ParagraphSpacing

ParagraphSpacingBefore

NSParagraphStyle

(CGFloat)

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


FirstLineHeadIndent

NSParagraphStyle

(CGFloat)

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


HeadIndent

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText_高性能_25


TailIndent

NSParagraphStyle

(CGFloat)

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


MinimumLineHeight

NSParagraphStyle

(CGFloat)

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


MaximumLineHeight

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText_高性能_28


LineHeightMultiple

NSParagraphStyle

(CGFloat)

iOS开发之YYKit丰富的组件,如:YYText_高性能_29


BaseWritingDirection

NSParagraphStyle

(NSWritingDirection)

iOS开发之YYKit丰富的组件,如:YYText_高性能_30


DefaultTabInterval

TabStops

NSParagraphStyle

CGFloat/NSArray(NSTextTab)

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

iOS开发之YYKit丰富的组件,如:YYText_高性能_31

标签:YYText,YYKit,iOS,支持,文本,CGFloat
From: https://blog.51cto.com/u_15894905/7082044

相关文章

  • IOS开发笔记
    -基本概念   -Certificates(证书-认证开发者)   -Certificates-证书,是一个用来认证开发者身份的东西,没有它就不能在appstore发布应用,也不能给测试手机安装你开发的应用。   -大家都知道苹果开发者是付费的,其实开发者付费就主要就是用来申请这个证书的-Identi......
  • iOS 如何给http链接请求加上cookie
    先看https是怎么携带cookie的:varproperties:[HTTPCookiePropertyKey:Any]=[:]properties[.name]="key"properties[.path]="/"properties[.value]="value"properties[.secure]="true"properties[.domain]=".abc.c......
  • 【8月摸鱼计划】IOST Studio的一些常见使用方法
    IOSTStudio是一个用于开发和调试IOST应用的开发工具。下面是IOSTStudio的一些常见使用方法:安装IOSTStudio:首先,你需要从官方网站下载IOSTStudio,并根据指示进行安装。IOSTStudio提供了适用于不同操作系统的安装包。创建或导入项目:启动IOSTStudio后,你可以选择创建新项目或......
  • 【JavaScript42】axios拦截器
    在前端,我们能看到有些网站会对每次请求都添加加密信息.或者每次返回数据的时候,都有解密逻辑.那此时.你思考.不可能每次请求都要程序员去手动写加密逻辑.axios提供了拦截器.可以对每一个请求进行拦截.并修改请求的内容.拦截器还可以对响应进行拦截.并修改响应的数据.......
  • IOS 苹果手机根据时间自动切换主题和壁纸
    准备壁纸打开文件APP进入iCloud云盘/Shortcuts目录,创建名为壁纸的目录,然后加入两张图片,Dark.jpg和Light.jpg创建快捷指令打开快捷指令APP新建文件夹名为壁纸进入壁纸目录,新建快捷指令名为Light搜索如果,输入选择输入快捷指令的信息,条件选择有任何值搜索设定外......
  • could not find boost (missing iostreams) (found version xxxx)
    具体报错信息如上图,通过终端指定-DBOOST_LIBRARYDIR是无效的,需要在cmakelis中修改。注意这里报错溯源是cmakelistline29,所以修改如下set(CMAKE_INCLUDE_PATH${CMAKE_INCLUDE_PATH}"/home/rzhang/del/include")###新增set(CMAKE_LIBRARY_PATH${CMAKE_LIBRARY_PATH}"/h......
  • IOS App内嵌H5 swiper 轮播出现卡顿白屏闪烁
    话说在前头:前端开发同学遇到这个问题不慌,因为接下来你要踩的坑我都帮你们踩完了,所以有了这一篇博客。希望能帮到你轮播组件:[email protected](4x稳定的最后一个版本)设备:ios版本15x,14和16版本都挺好的,问题仅在ios15的版本出现现象:左右滑动卡顿,不连手,放开的......
  • Ios上架app无需688,xcode打包导出IPA,供人内测
    无需支付688苹果开发者账号,xcode打包导出ipa,提供他人进行内测众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习iosapp开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,经过一番百度,APPUploade......
  • 2022最全Hbuilder打包成苹果IOS-App的详解
    本文相关主要记录一下使用Hbuilder打包成苹果IOS-App的详细步骤。介绍一下个人开发者账号:再说下什么是免费的苹果开发者账号,就是你没交688年费的就是免费账号,如果你想变成付费开发者账号,提交申请付费就行,账号都是一样的账号。没有账号的点击链接申请:苹果开发者账号申请登录开发者......
  • 如何将你的iOS应用成功上架App Store(图文详解)
    上架基本需求资料1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程)2、开发好的APP通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestFlight测试然后提交审核的完整流程!上架AppStore审核分7步进行。1、安装iOS上架辅助软件Appuploade......