博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS开发--常用工具类收集整理(Objective-C)(持续更新)
阅读量:6712 次
发布时间:2019-06-25

本文共 3790 字,大约阅读时间需要 12 分钟。

 前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接。

这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率。

重复造轮子的事情,除却自我多练习编码之外,就不要傻傻的重复造轮子了,还是提高工作效率,早点完成工作早点回家陪老婆孩子。

所以下面备份的常用工具类一定是你需要的。

前提:你有一定的开发经验,知道它们在开发的什么地方需要,你都不知道用在哪里,那你需要个毛啊,还是好好另外学好基础吧。少儿不宜,请离开哦。

插件目录列表:(持续更新和添加)

1、UIImage+RenderMode.h

2、UIColor+Hex.h

3、UIView+AdjustFrame.h(补充:Adjust是"调整"的意思)

4、宏定义定义app开发常用尺寸,例如屏幕宽高,iPhone4的尺寸等等

5、关于处理颜色比较好的工具类,功能:NSCache缓存处理颜色对象提高性能、十六进制颜色值处理(包含了UIColor+Hex.h的功能)等等

6、关于可以修改系统的导航控制器导航条颜色和透明度的工具类别

7、NSTimer+Addition 关于计时器的类别工具

 

IOS工具类源码github下载地址:

觉得好,记得在我的github上点个赞,嘻嘻:

 

1、让图片不要渲染的工具类

简介:

 

直接看这个工具类的源码就知道,怎么设置了:

 
看源码点击坐标的"+"按钮

使用代码示例:

技术使用小小贴士:原本使用imageNamed会在KSImageNamed第三方插件自动弹出图片搜索提示,但是换了这个imageRenderingModeImageNamed就不会有提示。

解决方案:

  方案1:就是上面图示的,先用原生的imageNamed方法弹出搜索找到目标图片文件,然后拷贝到这个imageRenderingModeImageNamed拓展方法使用。

  方案2:找到KSimageNamed的源码,然后修改Completions.plist文件,然后再运行重新安装这个KSImageNamed插件。

    

  方案3:

  • 百度到Xcode插件目录是,~/Library/Application Support/Developer/Shared/Xcode/Plug-ins,但是根据我的探索经验得到的结果是,有的XCode插件是直接安装到这个目录下的,而KSImageNamed插件不是在这个地方的。
  • KSImageNamed插件在该路径下/Users/HeYang/Library/Developer/Xcode/Plug-ins(补充:这是我的路径,HeYang是我的电脑用户名,如果你自己的电脑就替换成你的用户名喽,这点智商不会为难你吧)。当然,这个目录从Library开始是默认隐藏的,最快的解决方法是,按commad+shift+G,然后把/Users/你电脑用户名/Library/Developer/Xcode/Plug-ins输入进去,

    

    回车就能打开目标目录,然后你就会看到:

    

    找到KSImageNamed插件,然后打开插件包内容,找到同样的Completions.plist文件,和方案2一样进行更改。然后直接重新启动XCode。

    然后使用效果:

    

 

2、提供十六进制转为色值的方法。

简介:项目实际开发中,美工提供给我们的颜色值可能是#ffffff十六进制或者是OC上的表示形式0Xffffff,而不是直接的RGB色值,

但是UIKit没有提供直接处理这两种情况的颜色值的方法,所以就需要我们自己对UIColor进行类别拓展方法:

 

源码:

 
点击坐标的"+"按钮就能打开源码

使用代码示例:

 

 

3、直接调整UIView的Frame的x,y,width,height,origin,size值

简介:关于UIView的Frame的x,y,width,height,origin,size值,在Objective-C中是无法直接赋值修改(在Swift中是可以直接赋值修改的),只能间接赋值修改,所以就需要将这部分抽离成

一个可复用的分类。补充:为了避免以后重复利用的过程中,方法名会和项目中其他代码方法名冲突,所以在属性和方法前面加了语义明确的前缀"adjust_",英文adjust就是调整的意思。

源码:

 
点击左边的"+"按钮就能打开看到源码

代码使用示例:

 4、宏定义定义app开发常用尺寸,例如屏幕宽高,iPhone4的尺寸等等

源码来自YouXianMing老师的亲笔:

////  WxHxD.h////  Created by YouXianMing on 14/10/29.//  Copyright (c) 2014年 YouXianMing. All rights reserved.//// 宽度#define  UIScreenWidth                     [UIScreen mainScreen].bounds.size.width// 高度#define  UIScreenHeight                    [UIScreen mainScreen].bounds.size.height// 状态栏高度#define  StatusBarHeight                   20.f// 导航栏高度#define  NavigationBarHeight               44.f// 标签栏高度#define  TabbarHeight                      49.f// 状态栏高度 + 导航栏高度#define  StatusBarAndNavigationBarHeight   (20.f + 44.f)#define  iPhone4_4s   (Width == 320.f && Height == 480.f ? YES : NO)#define  iPhone5_5s   (Width == 320.f && Height == 568.f ? YES : NO)#define  iPhone6      (Width == 375.f && Height == 667.f ? YES : NO)#define  iPhone6_plus (Width == 414.f && Height == 736.f ? YES : NO)//? YES : NO 这么写增加可读性

5、关于处理颜色比较好的工具类,功能:NSCache缓存处理颜色对象提高性能、十六进制颜色值处理(包含了UIColor+Hex.h的功能)等等 

github源码:

使用实例:

#import "ViewController.h"#import "ColorTools.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIView *colorView;@property (weak, nonatomic) IBOutlet UIView *colorView2;@end@implementation ViewController- (void)viewDidLoad {    //通过ColorTools内部的webColor的key获取颜色值,并会放入缓存中    self.colorView.layer.borderColor = [UIColor colorWithHexString:@"black"].CGColor;    self.colorView.layer.borderWidth = 2.0f;    self.colorView.layer.cornerRadius = 4.0f;    //通过UIColor的类方法获取UIColor对象    NSString* colorStr = @"0xff0fff";    UIColor* color = [UIColor colorWithHexString:colorStr];    self.colorView.backgroundColor = color;    //通过@"0xff0fff"本身获取UIColor对象    UIColor* color2 = [@"#ae2388ff" getColorFromColorhexa];    self.colorView2.backgroundColor = color2;    //宏定义的debug模式的打印两个颜色对象,看看是不是具体实例    LogColor(color)    LogColor(color2)}@end

运行效果和打印结果:

 

6、关于可以修改系统的导航控制器导航条颜色和透明度的工具类别

github网址:

效果展示:

另外呢,关于这个导航条颜色的设计,可以学习本人的《》

 

7、关于计时器的工具类别

备份百度云下载链接:  密码: zpkj

如果想对NSTimer进一步学习,可以阅读本人的笔记:《》

转载地址:http://slolo.baihongyu.com/

你可能感兴趣的文章
Zookeeper客户端使用
查看>>
IT 名企招聘信息
查看>>
汇编语言--百度百科
查看>>
OpenGL学习之路(三)
查看>>
嵌入式系统 Boot Loader 技术内幕【转】
查看>>
(windows)一台电脑上安装两个Mysql服务
查看>>
教你如何在Kali Linux 环境下设置蜜罐?
查看>>
主域控角色迁移和夺取(转载)
查看>>
HDFS High Availability Using the Quorum Journal Manager
查看>>
Sql日期时间格式转换
查看>>
mesos+marathon+zookeeper的docker管理集群亲手搭建实例(环境Centos6.8)
查看>>
你应了解的4种JS设计模式
查看>>
垃圾收集器Serial 、Parallel、CMS、G1
查看>>
mongodb基本概念解析
查看>>
OpenCV【2】---读取png图片显示到QT label上的问题
查看>>
Azure China (12) 域名备案问题
查看>>
STM32 常用GPIO操作函数记录
查看>>
XML:使用DOM技术解析xML文件中的城市,实现select级联选择
查看>>
JQuery:JQuery添加元素
查看>>
图解GitHub基本操作
查看>>