iOS程序犭袁小东的收藏iOS Developer

iOS开发--TTFramework

2017-04-18  本文已影响1681人  FR_Zhang

初衷

接触iOS开发已经有一年多的时间了,在这一年多的时间里,学到了很多,现在依照自己日常开发总结了一套自己的Framework,可作为中小型项目的项目应用框架解决方案,相关的项目已经上传到Github,,这篇文章会面针对TTFrameWork中的结构进行相关的说明.

TTFramework

----- 最新 -----

更新 1.1 Version

----- 目录 -----

一. TTShare

这样是涉及到的项目中的分享模块,这里支持常用的QQ(包括空间),微信(包括朋友圈),新浪.

这里面存放的是分享的原生SDK和相对应的分享类

这里是涉及到的相关的分享Model,如获取授权的用户的数据模型

每个分享的基础类,相对应的子类为TTSinaCenter, TTTencentCenter, TTWeChatCenter


二. Common

这是一个工具类,集合了项目中实际用到的方法

项目中用到的扩展,举几个栗子

这是一个有关字符串的扩展,主要是对字符串进行判断,如字符串的判空isNilOrEmpty, 获取加密的MD5:md5Str等等.

这里主要是针对UIView进行的分类,内容包括获取View的各种信息,如width,height.同时可以设置View的数值属性,并设置动画.
另外,还可以针对View的Layer层进行操作,如弧度或者圆等等.

UIDevice的分类,这里可以获取当前手机的系统号,手机的类型,手机的版本等各项信息.

数据持久化的解决方案之一,方便进行数据保存,可以保存Bool,Array,Value等类型,同时也可以进行读取

时间分类,可进行时间的获取,时间的格式化,,时间戳的转化等

这里第三方应用的集合

解压Zip文件

阿里云服务器的SDK
TTAliyunOSSManager,阿里云上传信息的管理类,可以上传图片和视频

Mob短信的SDK,其中自定义TTSMSManager,封装相关的获取和验证的功能

自定义过场动画,点击区域圆圈放大效果

自定义网络判断,参考Reachability封装的可以支持4G

收录的一个轮播图,使用简单

收录的一个日历,效果还不错,Layer层的动画(目前该日历在github上面已经更新,但是针对项目而言,还是比较喜欢之前的版本)


日历.PNG

控制台字典或者数字打印中文

图片的截取,带截取框

不多说,图片下载

自定义Tool工具,用于项目中针对部分功能的封装,接下来,介绍几个常用的:

项目常用Tool,包括文本在Label中的尺寸计算,字符串收尾空格去除,MD5加密等,还包括手机号,邮箱等正则.

内购管理

Label长度自适应,一般用于热门推荐的标签


AutoLayoutLabelView.PNG

缓存清除,用于项目中图片的缓存,SDWebImage的Clear的封装,并在清除完成之后发送通知

用户选择视频,音频或者耗流量的使用移动网络数据的管理

音频播放工具,包括音频的播放,暂停等等功能

这个是项目中的一个常用的宏定义整合或者Public类的NSString,如CachePath沙盒路径,KEY_WINDOW窗口等等
PS:在项目中建议自定义一个Const,用于常用的宏定义,比较实用


三. ReasourceFiles

目前TTFrameWork相关内容所需要的文件.


四. TTNetWork

基于AFN做的进一步的封装.具体的内容建议下载TTFramework详细了解

AFNetworking的SDK

请求基础类,这个可以看做是链接项目中的请求数据和AFNetWorking的中间件

项目的实际数据请求类,继承自TTBaseRequest,并实现了针对项目的具体方法,同时也是针对每个接口的基础类


五. TTHUDMessage

自定义的HUD,基于MBProgressHUD做的封装,封装了几种常用的显示等待的方案,具体的可以看项目中的内容

项目中实际用到的加载等待的类


六. Model

基于MJExtension做的相关的封装,涉及到模型的转换等

PS:在项目中的具体的model需要继承自TTBaseModel,并且实现相关的功能,如替换,属性为自定义类的实现等等

七. View

自定义的View,针对项目中常用的View的继承和封装,下面简单的列举几种:

收录的强大的轮播图,自定义CarouselManager针对iCarousel使用功能进行封装.具体的可以参考Github上的iCarousel

位于底部的View,常用于项目中的评论等等

基于UITableView和UICollectionView做的下拉刷新和上拉加载(加载更多),分别为TTTableView 和TTCollectionView
共用同一套HeaderView和FooterView
相对应的文件中均有相关的Annotation_XX说明文件
这里需要注意的是:

在TTCollectionView中收录了两套瀑布流,并做出了相关人性化的调整


八. Controller

Controller的基类,主要设置了相关的Controller属性,融合了Navigation的相关设置,如左侧按钮,右侧按钮(们),导航栏的颜色,状态栏等,同时,可以设置当前Controller的方向等等

需要注意的是,如果当前控制器存在数据请求,在实际的控制其中,需要在dealloc中调用cancelAllRequest,这个需要适当调用

用于项目中自定义的TabBar


九. TTOtherPayManager

针对iOS的支付,在之前,TTFrameWork仅仅写了关于苹果的内购AppPurchaseManager,这次的更新,我融入了关于第三方(支付宝和微信)支付,采用最简单的调用方式,一站式解决方案.
具体说明:
TT--TTOtherPayManager(iOS开微信和支付宝支付)


总结

这个TTFrameWork总结了日常开发会遇到的一些东西,同时也收录的很多网上的优秀的第三方.这个FrameWork我会经常更新,针对项目中出现的很多Bug可能会做出相关的修改,同时,如果你发现有Bug,请在文章的最后,通关相关的联系方式联系我,欢迎大家多多学习和交流.

PS:这里对TTFrameWork的做的简单介绍,具体的,我在相关对应的方法中进行了详细的说明,欢迎下载TTFrameWork.

如果你感觉这个TTFrameWork对你有所帮助,希望可以去Github点亮小星星,这是对我最大的鼓励.


1. 项目地址:

2. 联系方式


感谢

首先感谢现在所在的项目组岩臻飞飞对我的帮助,同时也要感谢曾经在我困惑的时候对我帮助过的大神们,我会更加努力,谢谢.

上一篇下一篇

猜你喜欢

热点阅读