关于近期项目代码整理(iOS)
近期对项目中所经常使用到的封装代码进行整理,并将其上传至网络保存,本人会在后期不间断的更新其内容。具体链接地址为代码封装
关于代码
这些代码为从学习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)的更多相关文章
- iOS:使用Github托管自己本地的项目代码方式三(命令行方式: Terminal Line)
使用终端命令行将本地项目代码上传到github上进行托管 对于IOS开发者来说,Github的使用是必须要掌握的一种技能,而把项目由本地上传到Github有多种方式 1.开发工具Xcode配置Git, ...
- Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理
作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...
- iOS:使用Github托管自己本地的项目代码方式一:(Xcode方式:开发工具Xcode配置Git,由Xcode-->Source Control-->Commit)
管理代码的地方主要有:Github(国外流行).CocoaChina.Cocoa4App.中国开源社区.CSDN.博客园.简书等等..... 现在主要介绍如何使用Github托管自己的项目代码. 尊重 ...
- IOS常用代码整理
常用代码整理: 12.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRege ...
- 随手记今天跟的几个iOS项目代码的问题
休了一阵子假期,今天刚回来上班,项目代码已经有挺大的变化了,我就先体验.发现.跟进问题. 第一个问题是点击某个cell就挂掉的现象,同事表示必现但挺神奇.由于挂掉的时候没有啥有意义的信息,所以先简单粗 ...
- iOS:使用Github托管自己本地的项目代码方式二(客户端方式: Github Desktop)
管理代码的地方主要有:Github(国外流行).CocoaChina.Cocoa4App.中国开源社区.CSDN.博客园.简书等等..... 前面已经介绍了如何使用命令行和Xcode将本地代码上传到G ...
- iOS 统计项目代码行数
最近去面试 对面的"他" 问我其中一个问题 是 "你的项目代码量是多少?" 当时的确有点蒙圈, 我可以从整个项目打包的角度考虑项目大小,我还真没想过到底我的项目 ...
- php代码规范->如何写出规范且易于理解的项目代码-ZX版
2019年5月17日10:50:12 前序: 目前是想到哪写到哪,后面有时间在整理成具体文章 很多时候,PHP代码风格过于自由,导致一个项目有N多种写法风格,有些人为了自己认为的技术"高&q ...
- 【转载】借助GitHub托管你的项目代码
PS:自己关注博客园有2年之久了,不久前才申请注册账号.GitHub也差不多一年多了,因英语水平刚刚及格,所以去GitHub没有博客园多,也是几个月前才注册了账号,前几天休息时看到 EdisonCho ...
随机推荐
- Android moveTaskToBack(booleannon Root)
moveTaskToBack (booleannon Root)方法:在activity中调用此方法即可将activity 退到后台,注意不是finish()退出. 参数说明: 参数为false--代 ...
- 二十一、Java基础--------IO流之综合案例分析
前三篇文章详细介绍了IO流体系所涉及的重点内容,为了帮助理解与学习,本片博客主要是分析一个与IO操作相关的题目. 例1:在我们观看视频时经常要关注的就是视频的时间长度,在学习了IO操作之后,就可以自己 ...
- 在jasp页面循环显示
<% int h=3;//行数 int l=3;//列数 %> <table> <% for(int i=0;i<h;i++){ %> <tr> ...
- java第四次作业
(一)一个字节 import java.io.*; /** * 实现文件复制 * @author Administrator * */public class CopyFile { public st ...
- T-SQL存储过程、游标
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- HTML和CSS的复习总结
HTML(Hypertext Markup Language)超文本标记语言:其核心就是各种标记!<html> HTML页面中的所有内容,都在该标签之内:它主要含<head>和 ...
- 常见UI布局之1-2-1单列变宽布局
扩展前一篇“上中下三栏布局”,中间栏划分成两列,一列宽度固定,一列宽度随浏览器窗口宽度的变化而变化.固定宽度列定义为#side,可分为左侧布局和右侧布局,分别实现如下: 1-2-1左侧固定宽度布局 & ...
- 理解innodb buffer pool
今天组里有个同事说可以查看innodb buffer pool每个表和索引占的大小,为此我搜了下,还真有方法,记录下. innodb buffer pool有几个目的: 缓存数据--众所周知,这个占了 ...
- jQuery Mobile应用之火车票查询
效果图: 在CMD中输入如下代码 corsproxy (前提是有node.js环境,并先安装corsproxy) html: <!DOCTYPE html> <html> &l ...
- activity的四种加载模式
在android里,有4种activity的启动模式,分别为: standard, singleTop, singleTask和singleInstance, 其中standard和singleTop ...