近期对项目中所经常使用到的封装代码进行整理,并将其上传至网络保存,本人会在后期不间断的更新其内容。具体链接地址为代码封装

关于代码

这些代码为从学习iOS来到现在实际项目开发中,精炼出来的封装代码,使用相对简单,由于所做的项目开发难度相对较小,所以这里封装的一些都属于常用的小工具。希望能给大家带来便利。下面是几个具体封装类的使用方法

BQScreenAdaptation.h

此类主要是为了屏幕适配所写,使用的原理为等比例适配。不同于传统的等比例适配,笔者的等比例全部是基于屏幕宽度来进行等比例计算。经过两个项目的编写发现使用此类的好处在与可以直接适配iPhone的所有机型分辨率。由于全部以宽来进行等比例所以布局出来的高度可能会超出实际屏幕高度。在这里笔者的解决方案为设计一个容器视图(scrollView)用以添加界面,若布局后的视图超出屏幕只需要再设置容器视图的画布展示大小即可。

/**
将IPHONE_WIDTH改为对应设计图的宽度
在使用的时候直接使用BQAdaptationFrame函数
还原为其设计图上的坐标位置,需要除以BQAdaptationWidth()
*/
#define IPHONE_WIDTH 375
在此类中添写View和CALayer的类目,可以用top、left、right、bottom等访问对应的orign.x、orign.y、width、height等属性

BQNetWork.h

网络请求类,笔者个人封装的网络请求,使用简单方便。功能不如AFNetwork强大,但胜在简便,轻量。使用方法如下所示

/**  网络请求 */
+ (void)asyncDataWithUrl:(NSString *_Nullable)urlString
parameter:(NSDictionary *_Nullable)parameter
netWorkType:(NetWorkType)netWorkType
hasAnimation:(BOOL)hasAnimation
compeletedHandle:(void(^_Nullable)(id _Nullable content,BOOL success))handle;
/** 可配置请求头的网络请求 */
+ (void)asyncDataWithUrl:(NSString *_Nullable)urlString
parameter:(NSDictionary *_Nullable)parameter
headerParameter:(NSDictionary *_Nullable)headerParameter
netWorkType:(NetWorkType)netWorkType
hasAnimation:(BOOL)hasAnimation
compeletedHandle:(void(^_Nullable)(id _Nullable content,BOOL success))handle;
/** 上传头像请求 block回传字典格式必须为@{"key":图片对应key值,"name":上传到服务器名字,"data":图片data数据} */
+ (void)postUploadWithUrl:(NSString *_Nullable)urlString
parameter:(NSDictionary *_Nullable)parameter
picBlock:(NSDictionary *_Nullable(^_Nullable)())picBlock
netWorkType:(NetWorkType)netWorkType
hasAnimation:(BOOL)hasAnimation
compeletedHandle:(void(^_Nullable)(id _Nullable content,BOOL success))handle;

BQImagePickVc

图片选择器,经过封装后的图片选择器非常简单,自动判断时候支持照相功能,使用只需推出视图即可

//此处需要让BQImagePickVc被持有,否则会造成崩溃
[self.imagePick showPickerImageMessageWihtVc:self handleImage:^(UIImage *image) {
NSLog(@"%@",image);
}];

BQTools.h

此类的方法较多,具体参看头文件

NSString+safe.h

关于NSString加密解密处理的方法类目,包含有MD5和SHA散列加密,另含NSSrring和NSData的Base64加密解密

BQKit

其中BQWeakProxy和BQFPSLabel为模仿YYKit所写的虚拟代理类和帧数检测类,用以防止循环引用所和检测刷新频率使用。BQTextFieldView为所写的一个文本框视图,效果图如下

后期有新的封装会持续加入,若代码中有何不妥之处欢迎指出。

关于近期项目代码整理(iOS)的更多相关文章

  1. iOS:使用Github托管自己本地的项目代码方式三(命令行方式: Terminal Line)

    使用终端命令行将本地项目代码上传到github上进行托管 对于IOS开发者来说,Github的使用是必须要掌握的一种技能,而把项目由本地上传到Github有多种方式 1.开发工具Xcode配置Git, ...

  2. Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理

    作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...

  3. iOS:使用Github托管自己本地的项目代码方式一:(Xcode方式:开发工具Xcode配置Git,由Xcode-->Source Control-->Commit)

    管理代码的地方主要有:Github(国外流行).CocoaChina.Cocoa4App.中国开源社区.CSDN.博客园.简书等等..... 现在主要介绍如何使用Github托管自己的项目代码. 尊重 ...

  4. IOS常用代码整理

    常用代码整理: 12.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRege ...

  5. 随手记今天跟的几个iOS项目代码的问题

    休了一阵子假期,今天刚回来上班,项目代码已经有挺大的变化了,我就先体验.发现.跟进问题. 第一个问题是点击某个cell就挂掉的现象,同事表示必现但挺神奇.由于挂掉的时候没有啥有意义的信息,所以先简单粗 ...

  6. iOS:使用Github托管自己本地的项目代码方式二(客户端方式: Github Desktop)

    管理代码的地方主要有:Github(国外流行).CocoaChina.Cocoa4App.中国开源社区.CSDN.博客园.简书等等..... 前面已经介绍了如何使用命令行和Xcode将本地代码上传到G ...

  7. iOS 统计项目代码行数

    最近去面试 对面的"他" 问我其中一个问题 是 "你的项目代码量是多少?" 当时的确有点蒙圈, 我可以从整个项目打包的角度考虑项目大小,我还真没想过到底我的项目 ...

  8. php代码规范->如何写出规范且易于理解的项目代码-ZX版

    2019年5月17日10:50:12 前序: 目前是想到哪写到哪,后面有时间在整理成具体文章 很多时候,PHP代码风格过于自由,导致一个项目有N多种写法风格,有些人为了自己认为的技术"高&q ...

  9. 【转载】借助GitHub托管你的项目代码

    PS:自己关注博客园有2年之久了,不久前才申请注册账号.GitHub也差不多一年多了,因英语水平刚刚及格,所以去GitHub没有博客园多,也是几个月前才注册了账号,前几天休息时看到 EdisonCho ...

随机推荐

  1. Java注解详解

    Java1.5引入了注解,注解作为程序的元数据嵌入到程序中.注解可以被一些解析工具或者编译工具进行解析.我们也可以声明注解在编译过程或者执行时产生作用. 创建Java自定义注解: package co ...

  2. gulp使用引导

    全局安装npm  install  –g  gulp 安装到本地 npm install gulp –save-dev 新建gulpfile.js 编写文件内容并运行 var gulp = requi ...

  3. 论文阅读(Xiang Bai——【CVPR2012】Detecting Texts of Arbitrary Orientations in Natural Images)

    Xiang Bai--[CVPR2012]Detecting Texts of Arbitrary Orientations in Natural Images 目录 作者和相关链接 方法概括 方法细 ...

  4. [Vuejs] 关于vue-router里面的subRoutes

    刚学习vue,可能有使用不对的地方,希望没有对大家造成困扰! 使用vue-router,为了能够更好的管理.vue文件,需要用到子路由. 先看个错误的例子 routers.js '/company': ...

  5. 浅谈JDBC编程

    一.概述 1.为什么要用JDBC 数据库是程序不可或缺的一部分,每一个网站和服务器的建设都需要数据库.对于大多数应用程序员(此处不包含数据库开发人员)来说,我们更多的不是在DBMS中对数据库进行操纵, ...

  6. hadoop 多表join:Map side join及Reduce side join范例

    最近在准备抽取数据的工作.有一个id集合200多M,要从另一个500GB的数据集合中抽取出所有id集合中包含的数据集.id数据集合中每一个行就是一个id的字符串(Reduce side join要在每 ...

  7. Subversion Edge

    http://www.collab.net/downloads/subversion#tab-1

  8. C语言三维数组分解

    很多人在学习C的时候,感觉三维数组很难想象,而且不理解深度是什么?做了一个图,帮大家分解一下                                                       ...

  9. yield 用法分析

    yield 关键字向编译器指示它所在的方法是迭代器块.编译器生成一个类来实现迭代器块中表示的行为.在迭代器块中,yield 关键字与 return 关键字结合使用,向枚举器对象提供值.这是一个返回值, ...

  10. MarkDown简要语法

    1.标题 2.列表 3. 引用 4.图片与连接 实现链接有两种方式,分别是内联方式和引用方式 内联方式 [This baidu link](http://www.baidu.com)效果如:This ...