Skip to content

Latest commit

 

History

History
244 lines (187 loc) · 18.6 KB

Objective-C.md

File metadata and controls

244 lines (187 loc) · 18.6 KB

iOS Component for Objective-C

FMDB:开源数据库,对SQLite进行了封装,可直接使用或二次封装
else - 使用过Sqlite,需要手动进行封装,前者更易用
WHC_ModelSqliteKit - 数据库存储解决方案,简单操作
realm - 针对移动应用设计
JRDB:对FMDB的封装,支持Objective-C和Swift
Demo1:(表单创建、索引、删除,多线程)


HYBubbleButton:向上飘散动画效果,使用CAAnimation配合CGPath路径进行位移动画
else - 类似效果也可使用Dazzle,使用了CAEmitterLayer粒子效果
Demo1:(匹配项目需求,连续点击和长按效果)
PPiAwesomeButton:定义Button上的图标和文字


Masonry:布局框架,适合在代码搭建界面使用,系统布局的一种替代方案,有对应Swift版本
else - AutoLayout,自动布局,通过创建约束配合可视化界面来创建UI
UITabelView使用AutoLayout自适应布局
AutoLayout全解其中的UIWebView与UITableView、UIScrollView的交互使用可以计算ContentSize的动态高度
Demo1:(AutoLayout测试,使用UIScrollView时注意"建立一个与UIScrollview的父视图MainView相同EqualWidth,EqualHeight的约束)


SSKeychain:封装Keychain
else - UICKeyChainStore:可存储信息到Keychain,删除App后依然存在


ZXingObjC:二维码、条形码扫描识别解决方案,可设置可视区域


IQKeyboardManager:UITextField/UITextView键盘弹出时的遮挡自适应,简易的解决方案


pop:facebook开源动画引擎,支持弹性、衰减动画,功能强大,核心使用CoreAnimation
POP-MCAnimate:pop动画的封装
else - Canvas:是一个动画合集,目标"Animate in Xcode Without Code",对于能够支持的动画效果还算易用,想要扩展有点生硬,关于二者的比较
lottie-ios:可以将AE动画转换成iOS原生动画的强大库


CRGradientNavigationBar:可任意设置UINavigationBar的背景颜色和渐变效果,继承于UINavigationBar,支持iOS6以上


Objective-C RegEx Categories:正则表达式的扩展,添加了NSRegularExpression类目,可用来作邮箱地址有效性、校验数据合法性等验证
else - RegexKitLite:正则是对NSString的扩展,校验必须是NSString类型
xpath是一个正则实现的网页抓取小工具,可在网页上抓取信息


MBProgressHUD:任务进行时的Loading显示状态,可用于页面加载、请求数据等
else - SVProgressHUD:类似的加载过程显示组件,显示样式不同于前者
M13ProgressSuite:加载进度套装组件
MRProgress:类似的加载显示组件,可获取进度百分比
DACircularProgress:进度条组件
JazzHands:帧数动画库,可以结合手势、通知等创建交互式动画.


Alcatraz:Xcode包管理工具,可搜索后直接安装\卸载,下面推荐4款好用工具
KSImageNamed:自动提示图片插件,在imageNamed后自动提示预览图片和名称补全功能,提高Coding效率
VVDocumenter:能够快速生成注释文档,Javadoc规范,使用"///"识别
CocoaPods:关联性管理器,可管理第三方库之间的相互依赖,简化了类库的相互依赖、更新、维护等操作,很多主流类库已托管之上
Peckham:自动生成#import引入,可在任意位置触发选择器
FastStub:快速生成delegate、.m实现方法、init方法等


dSYM:线上App定位bug工具,通过出错的函数地址去查询dSYM文件中程序对应的函数名和文件名


Reachability:网络相关状态监测,支持Block,使用时重命名以防审核被拒
else - Reachability:苹果官方版本,支持iOS6以上


SDWebImage:支持图片的网络请求、显示、缓存,添加了UIImageView类目
else - UIImageView+AFNetworking也提供了相似的异步加载图片功能
LKImageKit:腾讯的一个个高性能的图片框架,包括了图片控件,图片下载、内存缓存、磁盘缓存、图片解码、图片处理等一系列能力


RNCachingURLProtocol:WebView的离线缓存
else - AFCache:Http缓存


AFNetworking:强大的网络请求封装,Mattt Thompson出品,Swift版可使用Alamofire
else - MKNetworkKit:一款轻量级网络请求
BANetManager:基于AFNetworking 3.0、3.1最新版本的封装,集成了 get / post / put / delete 方法请求数据,单图/多图上传,视频上传/下载,缓存等


TTTAttributedLabel:渲染字符串,支持链接植入,支持NSAttributedString
else - MLEmojiLabel:自动识别网址、邮箱、表情等
Demo1:(把整段string分割出link链接,附有动态获取Cell高度的方法)
MarqueeLabel:可以实现文字的滚动效果


FDFullscreenPopGesture:全屏滑动pan手势pop返回到一级页面,基于UINavigationController,返回动效贴近源生效果,支持iOS7以上
else - MLTransition:相似的pop拖动返回功能,号称用了unpublish的API仍然通过审核,要使用的话还是谨慎一些,不确定将来是否没问题


UITableView-FDTemplateLayoutCell:根据内容动态计算UITableViewCell高度,支持文本+图片的排版
else - TTTAttributedLabel:里有Cell根据文本内容匹配高度的方法,无图片
Demo1:(类似QQ聊天界面,纯代码布局)


JPVideoPlayer:UITableViewCell播放、缓存视频


DateTools:日期工具库,可进行日期和时间的相关操作,支持中文输出


Mantle:可以把JSON数据转化成Model模型,构建模型层
else - JSONModel:类似的数据模型封装
MTLFMDBAdapter:可用于Mantle和FMDB之间的转换
关于Mantle有相关的介绍和使用方法,为什么选择Mantle


GVUserDefaults:对NSUserDefaults进行了封装,使NSUserDefaults的调用更加轻便


FCFileManager:对NSFileManager的扩展封装,使文件的操作更加简便


JSONKit:JSON数据解析、序列化JSON,常被用作库之间的依赖
else - TouchJSON:类似功能的JSON解析类库
NSJSONSerialization是苹果iOS5之后提供的自带解析API


Shimmer:动态的闪烁效果,可用作标题或加载指示器,facebook出品


MMDrawerController:测拉下浮层菜单,预览视图、距离等属性可直接调整,事件处理有block回调,易扩展
else - ViewDeck:左右侧下浮层菜单,类似Path2.0的侧滑效果
CSDrawerController:左侧下浮层菜单,支持点击和手势操作,回调代理有返回状态,支持iOS7以上
MSDynamicsDrawerViewController:左侧下浮层菜单,具有弹性效果
ECSlidingViewController:左侧上浮层菜单,类似的视图控制器
REFrostedViewController:左侧上浮层菜单,具有iOS7之后的模糊效果,实现了拖动和点击


iCarousel:旋转木马的视图切换效果,包括CoverFlow、TimeMachine等3D效果,可用作对ViewController集合的管理器


SDVersion:可检测设备版本和屏幕尺寸,包含了iOS和Mac OS的轻量级工具库


VPImageCropper:图片选择器,可拍照或从图库选择,获取后可编辑图片位置,返回头像形圆图


KNSemiModalViewController:实现缩放ViewController后弹出半模态视图,带有叠加动画,可用作底部弹出分享面板、工具栏等


Color:UIColor颜色设置的封装,包含RGB等
else - iOS7Colors:iOS7下颜色的设置,UIColor类目下类方法实现


FRDLivelyButton:扁平风格导航按钮,有菜单、关闭、添加等图形,切换间具有动画效果,UIButton的子类封装
else - TBIconTransitionKit:类似的icon动画切换效果,有不同的过度方式


NJKWebViewProgress:实现了UIWebView的加载进度条显示


SwipeView:轮播器或水平方向滚动视图加载,基于UIScrollView,可实现动态加载效果
else - SDCycleScrollView:无限循环图片轮播器,使用了UICollectionView实现,可用于焦点图


TMCache:缓存数据解决方案,可以缓存到Memory或者Disk


SlackTextViewController:滑动视图下方文字输入框高度自适应,可复制单元格内容等


FXBlurView:通过UIView的子类,提供了视图的模糊、虚化效果
VVBlurPresentation:基于ViewController,喵神出品


Knuff:苹果推送通知APNs调试工具


MMNumberKeyboard:一款自定义的简洁数字键盘,包含小数点“.”,继承于UIInputView,支持iOS7以上


MWPhotoBrowser:照片选择和浏览控件
else - GKPhotoBrowser:仿微信、今日头条、简书图片浏览器
CTAssetsPickerController:图片选择器组件,支持从图片库选择多张图片
TZImagePickerController:支持多选、选原图和视频的图片选择器
YBImageBrowser:图片浏览器,支持视频
ZLPhotoBrowser:相册多选框架,支持预览、相册内拍照等


ZYCornerRadius:实现设置圆角,两种工作方式:Category和UIImageView子类


JDStatusBarNotification:顶部status bar弹出通知、loading状态
else - MTStatusBarOverlay:顶部status bar显示消息的开源库


WebViewJavascriptBridge:OC和JS的互相调用,适用于UIWebView和native通信
else - JSPatch:OC和JS之间的桥接,使用OC的Runtime


MJRefresh:多种下拉刷新支持及扩展
else - SVPullToRefresh:下拉刷新控件,会通过KVO监听contentOffset


ZipArchive:Zip解压、压缩方案,包括密码保护的Zip包


PYSearch:搜索视图控制器


XHLaunchAd:开屏广告、启动广告解决方案-支持静态/动态图片广告,mp4视频广告


BRPickerView:选择器:日期、时间、地址选择器、自定义单列字符串、自定义多列字符串


FLEX:修改显示读取运行的控件信息


AAChartKit:图表组件库,几十种的信息图表
else - Charts:各种图标统计展示


ijkplayer:基于FFmpeg的视频播放器、拉流框架
else - ZFPlayer:功能完善的视频播放
WMPlayer:同上


JSBadgeView:控件数字显示标识


Aspects:通过AOP的思想实现了method swizzle


JLRoutes:路由跳转类库


JJException:防止App异常闪退
else - GYBootingProtection:启动连续闪退保护


WMPageController:分类切换滚动视图
else - JXCategoryView:同上
SwipeTableView:同上
SGPagingView:同上
LTScrollView:同上
YNPageViewController:同上
HMSegmentedControl:同上