原创:知识点总结性文章
创作不易,请珍惜,之后会持续更新,不断完善
个人比较喜欢做笔记和写总结,毕竟好记性不如烂笔头哈哈,这些文章记录了我的IOS成长历程,希望能与大家一起进步
温馨提示:由于简书不支持目录跳转,大家可通过command + F 输入目录标题后迅速寻找到你所需要的内容
目录
- 一、文本框
- 1、富文本
- 2、文本框
- 3、键盘
- 4、数字金额
- 5、日期格式
- 二、图片
- 1、图像浏览
- 2、图像处理
- 3、图像缓存
- 4、相册
- 5、Gif
- 6、图表
- 7、全景图
- 8、表情
- 9、屏幕截图
- 三、UI
- 1、性能优化
- 2、界面美化
- 3、表格集合
- 4、切换页面
- 5、组件
- 6、自动布局
- 7、上下拉刷新
- 8、弹窗
- 9、广告和新手引导
- 10、空白页面
- 11、付款界面
- 12、手势
- 四、NSObject
- 1、APP架构
- 2、系统功能
- 3、开发格式
- 4、功能块
- 5、多线程
- 6、自动生成代码
- 7、跨平台
- 8、语言转化
- 9、通知
- 10、运行时
- 五、绘图
- 1、图表
- 2、3D
- 3、画板
- 六、动画
- 1、组件动画
- 2、转场动画
- 3、自定义动画
- 4、多媒体动画
- 5、几何图形动画
- 七、网络请求
- 1、请求库
- 2、客户端库
- 3、服务端库
- 4、网页库
- 5、监控网络状态
- 6、解析器
- 八、数据库
- 1、SQLite
- 2、CoreData
- 3、封装
- 4、后端数据库
- 5、缓存
- 6、本地轻数据存储
- 九、数据安全
- 1、钥匙
- 2、授权
- 3、加密解密
- 4、逆向工程
- 5、预防崩溃
- 6、解锁界面
- 十、多媒体
- 1、音频
- 2、视频播放
- 3、媒体流
- 4、视频处理
- 5、视频录制
- 6、直播
- 7、弹幕
- 8、VR
- 9、AR
- 10、相机
- 11、二维码
- 12、PDF
- 13、图像识别
- 14、游戏
- 15、机器学习
- 十一、应用
- 1、地图
- 2、聊天
- 十二、工具
- 1、性能优化
- 2、修复Bug
- 3、测试
- 4、分享统计推送服务
- 5、压缩
- 6、模拟器
- 7、VPN
- 8、蓝牙
- 9、版本适应
- 10、打包
- 11、Git
- 12、Xcode
- 十三、数据结构与算法
- 1、数据结构
- 2、算法
- 3、数学
- 十四、平台
- 1、Watch
- 2、TV
- 3、Mac
- 资源集合
- 1、开源项目
- 2、框架列表
- 3、源代码
- 4、编程书籍
- 5、面试
- 6、知识集
- 7、Flutter
- 参考文献
一、文本框
1、富文本
a、Markdown
-
Ink -用Swift编写的快速灵活的
Markdown
解析器。 -
Marklight.swift:
Markdown
语法高亮显示编辑库。 -
MarkdownView:基于
WKWebView
的UI元素 - 高亮:主题演讲幻灯片的功能丰富的语法高亮器。
b、HTML
-
DTCoreText:支持富文本的显示如
HTML
-
DTCoreText:可以解析
HTML
与CSS
最终用CoreText
绘制出来,通常用于在一些需要显示富文本的场景下代替低性能的UIWebView
。
c、动画效果
-
Shimmer:
BlingBling
闪光效果,酷炫的Label
的效果,可以用于加载等待提示,可以让view
展示波光粼粼的效果。 -
LTMorphingLabel:能够实现文字变形动画效果的
Label
,很炫。 - TTTAttributedLabel:链接文本区域响应
- Splitflap.swift-:可用于快速给iOS应用创建文字翻转的动画效果。
- GlitchLabel.swift-:可定制“黑(故障)文字标签”类库,熟称晃瞎你的眼文字标签。
- 一闪:为字体加上钻石版闪耀的效果 。
- AutoScrollLabel:文字跑马灯滚动效果
- LTMorphingLabel:优美变形效果。
-
GBigbang:一个分词功能组件/大爆炸/
tagFlowView
d、特殊文本
-
M80AttributedLabel:
M80AttributedLabel
实现文字与表情的混排。一般使用气泡作为背景.功能较齐全的attributed label
,支持attributed string
和图片、链接、控件的混排 - ZSSRichTextEditor:编辑器,支持语法高亮和源码查看
-
LTMorphingLabel:很
cool
的文字展示 - YYText:功能强大的 iOS 富文本框架
- SJAttributesFactory:富文本编辑工厂,让代码更清晰,文本编辑、高度计算等等... 简便操作,让你爽到爆。
-
GRichLabel :支持选择复制,支持自定义选择弹出
menu
的富文本Label
,内部使用YYAsyncLayer
提供异步绘制任务。 -
ZSSRichTextEditor:适用于iOS的富文本
WYSIWYG
编辑器,支持语法高亮和源码查看。ZSSRichTextEditor
包含所有WYSIWYG
标准的编辑器工具。 -
M80AttributedLabel:实现文字与表情的混排。一般使用气泡作为背景功能较齐全的
attributed lable
,支持attributed string
和图片、链接、控件的混排。 - Stryng:将字符串带入全新的语法级别
- AttributedLabel:属性标签
e、字体
- FontBlaster:载入定制字体时更简单。
2、文本框
-
JVFloatLabeledTextField:特殊效果的
textField
,浮动标签模式 -
TextFieldEffects:有标注的
textFiled
-
MessageViewController-:
SlackTextViewController
替代。 -
CMInputView:
UITextView
输入时高度自适应 - ParkedTextField:带固定文本的输入组件
3、键盘
- KeyboardLayoutGuide:管理iOS键盘
- IQKeyboardManager:零行代码解决键盘上移的问题
- TPKeyboardAvoiding:有文字输入时,能根据键盘是否弹出来调整自身显示内容的位置
- AGEmojiKeyboard:表情面版
- Slidden:自定义键盘的库,利用这个开源库,可以方便的配置键位、颜色以及键位对应的图片
- WHC_KeyboardManager:iOS平台轻量级的键盘管理器,使用简单功能强大,键盘再也不会挡住输入控件
4、数字金额
数字格式
金额
- CocoaLumberjack:记录框架
- Money:以给定货币精确地,安全地表示货币金额
动画
-
PPCounter:一款简单实用的数字加减动画,支持
UILabel
、UIButton
显示
5、日期格式
a、时间
- DateTools:时间帮助插件,可以快速获取时间,比较,增加等操作
- 时计:直观的日期处理。
- 年表:为Swift建立更好的日期/时间库。
- SRCountdownTimer:一个圆形倒计时查看
-
时间:
Swift
中类型安全的时间计算,由泛型提供支持 - DateRangePicker.swift-:可能是目前最好的OS X日期选择器,高扩展性,界面样式看起来很舒服,不过注意,是OS X开发专用。
b、日历
- FSCalendar:一个完全可定制的 iOS 日历库
- CVCalendar:是一个方便开发者集成自定义日历视图到自己 iOS 应用的项目
- JTAppleCalendar:日历视图
- CalendarKit:日历库。
-
JTCalendar:iOS下优美的
Calendar
组件,做GTD
类 App 必备
二、图片
1、图像浏览
浏览查看
- PYPhotoBrowser:浏览图片
- MediaBrowser:浏览图片和视频
- NYTPhotoViewer:图片浏览库,支持图片点击缩放,标题,多选,缩放动画等。
-
ImageViewer:模拟
Twitter
的图片浏览器。 - SwiftPhotoGallery:一个简单的,全屏显示图片的库,支持缩放,手势,切换关闭,Twitter的关闭样式,包括可自定义的页面指示器等。
-
ZLPhotoBrowser:方便易用的相册多选框架,支持预览/相册内拍照、预览快速多选相片,
3DTouch
预览照片,单选gif
、Live Photo
及video
;相册混合选择;原图功能;支持多语言国际化(中文简/繁,英语,日语);在线下载iCloud
端图片;自定义最大选择量及最大预览量;自定义照片升序降序排列;自定义照片显示圆角弧度 - PYPhotoBrowser: 图片浏览器。主要用于社交app,用于呈现一组图片。流水布局 、 线性布局;单击 、双击 、捏合 、旋转、拖拽、侧滑
- HZPhotoBrowser: 一个类似于新浪微博图片浏览器的框架(支持显示和隐藏动画;支持双击缩放,手势放大缩小;支持图片存储;支持网络加载gif图片,长图滚动浏览;支持横竖屏显示)
- LGPhotoBrowser:相册选择/浏览器/照相机(仿微信),包含三个模块:照片浏览器,相册选择器,照相机
-
SKPhotoBrowser:简单的
PhotoBrowser
/Viewer
受Facebook
启发,swift编写的twitter
照片浏览器。
轮播图
-
KJBannerView:轮播图
Banner
- 无任何第三方依赖、轻量级组件 支持缩放、自带缓存加载 支持自定义继承、定制特定样式 支持网络GIF播放和网络图片和本地图片混合显示轮播 支持在Storyboard
和Xib
中创建并配置其属性 - ImageSlideshow:图片幻灯片和图片轮播器。
- SDCycleScrollView:轮播图
-
LLCycleScrollView:iOS图片轮播(图片循环播放),支持文本图片结合,支持图片数据的连续加载,支持
StoryBoard
,支持本地图片显示及与网络图的混合显示。 -
Gemini:
Gemini
是基于Swift的基于滚动的丰富动画框架,以Swift编写。 - SGPagingView:美团、淘宝、京东、微博、腾讯、网易、今日头条等标题滚动视图
特殊命名
- 灯箱:一个方便的图片查看器。
-
NDAvatar.iOS:
NDAvatarViews
旨在显示用户的个人资料图片,当图片不可用时回退至其首字母缩写 - Preview-transition.swift:通过向导式代码实现步骤,实现完整,自然流畅的图片预览及转场功能。
- Agrume:一个图片查看库
2、图像处理
a、滤镜特效
- YUCIHighPassSkinSmoothing:磨皮滤镜
- Shimmer:具有闪烁效果的第三方控件
- FlagKit:用于在应用程序和Web上使用的美丽标志图标
-
YUCIHighPassSkinSmoothing-:使用Apple的
Core Image Framework
实现的平滑的美化图片的库。 - CTPanoramaView:显示球面,插入的摄像头。
- SABlurImageView:很容易的给图像添加模糊效果和动画
-
FaceAware-:一个焦点显示图片面部部分的
UIImageView
的扩展。 -
ZQCNN :一款比
mini-caffe
更快的Forward
库 -
AiyaEffectsIOS:宝宝特效
SDK IOS Demo
,支持美颜,3D特效,3D动画特效,2D特效等
b、图片裁剪
-
RSKImageCropper:适用于iOS的图片裁剪器,类似
Contacts app
,可上下左右移动图片选取最合适的区域 - GPUImage2.swift:基于GPU图像和视频处理框架库。
- TOCropViewController:图片裁剪
- CLImageEditor:超强的图片编辑库,快速帮你实现旋转,防缩,滤镜等等一系列麻烦的事情
- Nuke.swift-:完整,强大,实用的图片管理类库,主要功能包括可定制装载,缓存,滤镜及尺寸变换。
-
PinterestSwift :
Pinterest
样式图片缩放,切换示例。 -
SwiftyAvatar-:一个创建圆形图片的
UIImageView
类。 -
JLStickerTextView-:一个给
UIImageView
添加一个,多个Label
的库,并且可以进行进行编辑,旋转,大小调整。 - 巨嘴鸟:非常不错的图片处理库,支持图片裁剪,圆角,尺寸调整等。
-
JMRoundedCorner:
UIView
设置不触发离屏渲染的圆角!
c、图片格式
-
SVGKit:
SVGKit
是一个非常强大的,可以快速渲染SVG文
件的框架。你可以直接把SVG
文件加载至app中,并且SVG
中的每个图形会变成一个CAShapeLayer
,可以方便地进行缩放和动画你的图形。如果你想渲染app中的矢量图形,SVGKit
是个不错的解决办法 - Concorde:下载和编码JPEG图片。
-
SwiftSVG:支持多种接口(字符串,
NS / UIBezierPath
,CAShapeLayer
和NS / UIView
)替换SVG
类库。
d、色彩
- ComplimentaryGradientView:创建颜色层次和颜色突出显示的库。
-
UIImageColors-:用于
UIImage
的iTunes
样式颜色获取程序。 - Chameleon:可以通过它运用自定义颜色创建调色板
- IGColorPicker:一个自定义颜色选择器。Swift中可自定义的iOS颜色选择器。
- RandomColorSwift-:一个自动生成好看的颜色的Swift库。
-
Hue.Swift:颜色常规功能集于一身的定义,使用
Color
工具类库(含图片取色)。 - DynamicColor:强大的颜色操作扩展类。通过该类,你可以通过扩展方法基于某个颜色得到不同深浅、饱和度、灰度、色相,以及反转后的新颜色。是不可多得的好类库。
3、图像缓存
-
YYImage:适用于iOS的图像框架,用于显示/编码/解码动画
WebP
,APNG
,GIF
等 -
APNGKit:关于高性能和令人愉悦的方式,可在iOS中使用
APNG
格式播放。 - PINRemoteImage: 一个线程安全、高效的远程图片管理库,支持图片下载、缓存、处理,也支持GIF
-
AlamofireImage:
Alamofire
的一个图片组件,支持图片序列化,UIImage
扩展(压缩、缩放、圆角、核心图像),单个、多个的图片过滤、自动清除内存,队列图片下载、URL
鉴定、图片占位和异步远程图片下载、UIImageView过滤和转换等 -
Twitter Image Pipline :
Twitter
出品的一个高性能的图片下载、缓存库 - LKImageKit:一个高性能的图像框架,包括一系列功能,例如图像视图,图像下载器,内存缓存,磁盘缓存,图像解码器和图像处理器
- DFImageManager:图片加载、处理、缓存、预加载
- SDWebImage:用于异步下载网络上的图片,并支持对图片的缓存等。
- YYWebImage:加载图片
- 翠鸟:一个轻量级的纯粹的用于从网络下载和缓存图片的Swift库。
- HanekeSwift:一个用于iOS的轻量级通用的高速缓存库,使用Swift编写,对图像有特别优化。
- MapleBacon:一个图片下载,缓存库
-
ImageViewer-:类似
Twitter
的图片查看器。 - moa:一个非常棒的图片下载的扩展
- Nuke:一个强大的图片加载,缓存库。
- KFSwiftImageLoader:一个高级的轻量级的web图片反相下载和缓存库。
- ImageLoaderSwift:一个轻量级的快速加载图片的库。
- ImageScout:一个预知远程图片尺寸的库,支持图片下载,支持PNG,GIF和JPEG。
- Imaginary:远程图片异步下载,缓存。
-
url:
image
在SwiftUI
中加载异步图像。SwiftUI
图像视图,显示从URL
下载的图像,缓存和过滤器。 - [MediaBrowser](https://github.com/younatics/MediaBrowser: —照片/视频浏览器,支持
UIImage
对象,PHAsset
对象,资源库URL,网络图像/视频,本地文件。
4、相册
- DKImagePickerController:相册选取
-
TLPhotoPicker:类似
Facebook
的一个相册多图选取框架。 -
ImagePicker-:重塑
ImagePicker
的工作方式。 - TZImagePickerController:选择图片
-
PPSnapshotKit:在包括
UIWebView
和WKWebView
的网页中进行长截图 -
FacebookImagePicker-:类似
Facebook
相册照片选择器的照片选择器
5、Gif
- gifu:Swift中对iOS的高性能动画GIF支持
- FLAnimatedImage:高性能GIF动画引擎
-
SwiftGif:具有
gif
支持的小型UIImage
扩展 - SwiftyGif:高性能GIF引擎
6、图表
- Charts:图表开源库
- PNChart:国内开源作者,动态的图表
-
KLine:(
CAShapelayer
+UIBezierPath
)绘制K线支撑横竖屏切换、刷新、长按、缩放、masonry
适配,完美支持金融产品 非常的流畅,占用内存少,使用矢量进行填充K线 - XJYChart:优秀的的图表框架。支持动画,点击,滑动,区域高亮
- AAChartKit:极其精美而又强大的 iOS 图表组件库,支持柱状图、条形图、折线图、曲线图、折线填充图、曲线填充图、气泡图、扇形图、环形图、散点图、雷达图、混合图等各种类型的多达几十种的信息图图表
-
YOChartImageKit:支持在
watchOS
上绘制图表
7、全景图
- BSPanoramaView:超轻量级的iOS全景图组件。
8、表情
-
SBSAnimoji:该框架在
Messages.app
中用于记录Animoji
视频 - AnimojiStudio:制作具有无限持续时间的可爱表情符号视频,并可以在任何地方共享
-
Animoji:可以访问私有框架
AvatarKit
来生成Animoji
,就像Messages
应用程序一样。
9、屏幕截图
- 屏幕截图:全屏返回,截图手势返回,景深效果,类似斗鱼,天天快报,腾讯新闻等APP的手势返回。
三、UI
1、性能优化
- AsyncDisplayKit:将图像解码、布局以及渲染操作放在后台线程,带来更好的用户交互体验的框架。
- QMUI_iOS:致力于提高项目 UI 开发效率的解决方案
-
IBLinter:用于
Interface Builder
的linter
工具 - Texture:保持最复杂的用户界面的流畅和响应
- YYAsyncLayer:用于异步渲染和显示
- FengNiao-:一个清理Xcode中没使用的资源文件的命令行工具。
-
MetalPetal:基于
Metal
的GPU
加速的图像和视频处理框架。
2、界面美化
- Material:一个用于创建漂亮应用程序的UI / UX框架。
- Nimbus:提供了一套非常丰富的UI组件,能够实现很多非常炫的界面特效
-
xcbeautify:一个用于
xcodebuild
的小美化工具。 - LEETheme:优雅的主题管理库,一行代码完成多样式切换
3、表格集合
a、cell
-
folding-cell:点击
Cell
时,有折叠的动画效果,很赞 -
MGSwipeTableCell:
cell
侧滑删除 -
UITableView+FDTemplateLayoutCell:
cell
高度动态计算 -
SwipeCellKit:很赞的
tableView
左滑删除效果 -
CenteredCollectionView:轻量级的
CollectionViewCell
左右滑动效果,类似电影App选电影的效果 - Cards:应用商店卡片
- uicollectionview-reordering: 重新排序
- DraggingSort:长按拖拽排序
-
CHTCollectionViewWaterfallLayout:尽可能地模仿了
UICollectionViewFlowLayout
的用法,灵感来源于Pinterest
-
WMDragView:可以自由拖曳的
view
b、列表样式
- DeepDiff:支持列表和宫格列表快速变换的列表库
- MagazineLayout:能够在垂直滚动的网格和列表中布置视图的集合视图布局。
-
LNZTreeView:一个树状的列表
View
- CHTCollectionViewWaterfallLayout
- TableFlip:表格翻转
-
StackViewController:方便iOS开发者使用
UIStackView
构建表单或其他静态内容视图。
c、数据源
-
FunctionalTableData:声明式
UITableViewDataSource
实现 -
EditDistance:
tableView
、CollectionView
数据重载更新效果 -
RxDataSources:
UITableView
和UICollectionView
数据源 - YHListKit:一个轻量级的数据驱动列表框架
-
IGListKit:
IGListKit
是Instagram
推出的新的UICollectionView
框架,使用数据驱动,为了构建快速和可扩展的列表。另外,它有助于你在 app 结束对于大量视图控制器的使用. - CollectionKit:用于构建可组合的数据驱动的集合视图
d、表单
- Form:是一个方便开发者创建表单填写工作的 UI 库
-
Eureka.swift:
Eureka
是XLForm
的 Swift 的移植版本,一个可以帮助开发者们快速构建 iOS 各种复杂表单的库,具有较高的可扩展性,方便自定制样式 -
XLForm:很多表格类的
table
,写法更高冷一点,推荐使用 - SwiftyFORM:表单输入框架(亮点是表单验证规则引擎),是我见过地最易用的Swift表单组件。