iOS Category集合和异常处理
程序员文章站
2022-03-23 09:44:54
简单介绍这个库的大致内容:Category各种工具集合,Button图文混排、点击事件封装、扩大点击域,手势封装、圆角渐变、Xib属性、TextView输入框扩展、限制字数,图片加工处理、滤镜渲染、泛洪算法,富文本,投影,倒影,内发光,外发光,内阴影,外阴影,数组和字典防崩处理,数组算法处理等等等本库主要包含三大块:UIKit类、Foundation类、Exception 异常处理备注:很多采用了方法交换,但是很多都不是直接在load当中去交换处理,而是采用委托的方式,这样就可以在需要用的交换的工程当中...
简单介绍这个库的大致内容:Category各种工具集合,Button图文混排、点击事件封装、扩大点击域,手势封装、圆角渐变、Xib属性、TextView输入框扩展、限制字数,图片加工处理、滤镜渲染、泛洪算法,富文本,投影,倒影,内发光,外发光,内阴影,外阴影,数组和字典防崩处理,数组算法处理等等等
本库主要包含三大块:UIKit类、Foundation类、Exception 异常处理
备注:很多采用了方法交换,但是很多都不是直接在load当中去交换处理,而是采用委托的方式,这样就可以在需要用的交换的工程当中在程序最开始(AppDelegate)调用一次即可,灵活方便
GitHub地址:https://github.com/yangKJ/KJExtensionHandler
----> 日积月累 <----
UIKit类
1、简单函数和宏
#import "_KJMacros.h" /// 宏
#import "_KJINLINE.h" /// 简单的常用函数
#import "_KJGCD.h" /// GCD封装
2、按钮UIButton
- 按钮时间间隔限制,图文混排,倒计时,点击粒子效果等
#import "UIButton+KJBlock.h" /// 点击事件ButtonBlock
#import "UIButton+KJEnlarge.h" /// 改变UIButton的响应区域
#import "UIButton+KJButtonContentLayout.h" /// 图文混排
#import "UIButton+KJCreate.h" /// 快速创建按钮
#import "UIButton+KJIndicator.h" /// 指示器
#import "UIButton+KJEmitter.h" /// 按钮粒子效果
#import "UIButton+KJCountDown.h" /// 倒计时
3、文本UILabel
快捷显示文本位置、富文本处理
#import "UILabel+KJCreate.h" /// 快速创建文本
#import "UILabel+KJAttributedString.h" // 富文本
#import "UILabel+KJExtension.h"// 文本尺寸
4、视图UIView
- Xib右侧属性直接显示快捷处理
#import "UIView+KJXib.h" /// Xib属性等
#import "UIView+KJFrame.h" /// Frame - 轻量级布局
#import "UIView+KJGestureBlock.h" /// 手势Block
#import "UIView+KJRectCorner.h" /// 进阶版圆角和边框扩展
#import "UIView+Toast.h" /// Toast快捷显示
#import "UIView+KJGradient.h" /// 渐变处理 和 指定图形(直线、虚线、五角星、六边形、八边形)
5、导航UINavigation
#import "UINavigationBar+KJExtension.h" // 设置NavigationBar背景
#import "UINavigationItem+KJExtension.h" // Item链式生成
6、导航按钮UIBarButtonItem
#import "UIBarButtonItem+KJExtension.h" // 设置BarButtonItem
7、文本框UITextView
- 获取文本内部超链接,文本限制字符输入,个性化定制PlaceHolder,撤销输入
//#import "UITextView+KJPlaceHolder.h" // 输入框扩展
//#import "UITextView+KJLimitCounter.h" // 限制字数
//#import "UITextView+KJHyperlink.h" // 超链接处理
//#import "UITextView+KJBackout.h" // 撤销输入
8、颜色UIColor
- 获取色相饱和度亮度,RGBA相关,渐变颜色,指定点颜色等
#import "UIColor+KJExtension.h"/// 颜色相关扩展
#import "UIColor+KJExtension2.h"
9、图片UIImage
- 截图和裁剪、图片压缩、蒙版处理,图片拼接、图片尺寸处理等
#import "UIImage+KJScale.h" /// 图片尺寸处理相关
#import "UIImage+KJCompress.h" /// 图片压缩处理
#import "UIImage+KJMask.h" /// 蒙版处理
#import "UIImage+KJJoint.h" /// 图片拼接处理
#import "UIImage+KJCapture.h" /// 截图和裁剪处理
#import "UIImage+KJCoreImage.h" /// CoreImage 框架图片效果处理
#import "UIImage+KJAccelerate.h" /// Accelerate 框架的图片处理
#import "UIImage+KJPhotoshop.h"
//#import "UIImage+KJFloodFill.h" /// 图片泛洪算法
//#import "UIImage+KJFilter.h" /// 处理图片滤镜,渲染相关
//#import "UIImage+KJURLSize.h" /// 获取网络图片尺寸
//#import "UIImage+KJGIF.h" /// 动态图相关gif
10、控制器UIViewController
#import "UIViewController+KJFullScreen.h" /// 充满全屏处理
#import "UISegmentedControl+KJCustom.h" /// 修改背景色和文字颜色
11、UICollectionView
- 在CollectionView上面移动Item并且不影响正常CollectionView的左右滑动处理
#import "UICollectionView+KJTouch.h" /// 获取Touch事件
12、滑杆UISlider
- 渐变色滑杆,滑杆点击值修改
#import "KJColorSlider.h" /// 渐变色滑块
#import "UISlider+KJTapValue.h"
13、CALayer
- 简单的内阴影、外阴影、投影相关、倒影
//#import "KJShadowLayer.h" // 内阴影、外阴影、投影相关
//#import "CALayer+KJReflection.h" // 倒影处理
14、UIResponder
- 简单快捷的使用屏幕适配,快速按照设计图尺寸布局,在最初的地方调用一次传入设计图纸机型
#import "UIResponder+KJAdapt.h" /// 简单的比例适配
#import "UIResponder+KJChain.h" /// 响应链
15、UITabBar
- 小红点相关
#import "UITabBar+KJBadge.h"
16、贝塞尔UIBezierPath
- 获取路径上的关键点
#import "UIBezierPath+KJPoints.h"
Foundation类
1、NSObject
#import "NSObject+KJKVO.h" /// 键值监听封装
#import "NSObject+KJMath.h" /// 数学方程式
#import "NSObject+KJSignal.h" /// 信号方式解耦工具
#import "NSObject+KJGeometry.h" /// 几何方程式
2、NSString
#import "NSString+KJChinese.h" /// 汉字相关处理
#import "NSString+KJPredicate.h"/// 谓词工具
3、数组NSArray
#import "NSArray+KJPredicate.h" /// 谓词工具
#import "NSArray+ElementDeal.h" /// 对数组元素的处理 包括排序、查找、去重等等
4、字典NSDictionary
- Debug模式下控制台打印处理
#import "NSDictionary+KJExtension.h"
封装的一套异常处理Exception
简单测试
[KJExceptionTool kj_openAllExchangeMethod];
[KJExceptionTool kj_crashBlock:^BOOL(NSDictionary * _Nonnull dict) {
NSLog(@"回调处理:\n%@", dict[@"crashTitle"]);
return YES;
}];
NSMutableArray *temp = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",nil];
NSString *str = nil;
[temp addObject:str];
[temp setObject:@"1" atIndexedSubscript:4];
[temp insertObject:str atIndex:4];
NSDictionary *dicX = @{str:@"123",
@"key":str,
@"key":@"1"
};
NSLog(@"%@",dicX);
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithObjects:@[@"1",@"1"] forKeys:@[@"2",@"2"]];
[dict setObject:str forKey:@"3"];
[dict removeObjectForKey:str];
备注:目前包含基本的数组、字典、字符串的异常处理,后面有需要再补充
结尾
/*
*********************************************************************************
*
*⭐️⭐️⭐️ ----- 本人其他库 ----- ⭐️⭐️⭐️
*
粒子效果、自定义控件、自定义选中控件
pod 'KJEmitterView'
pod 'KJEmitterView/Control' # 自定义控件
扩展库 - Button图文混排、点击事件封装、扩大点击域、点赞粒子效果,
手势封装、圆角渐变、倒影、投影、内阴影、内外发光、渐变色滑块等,
图片压缩加工处理、滤镜渲染、泛洪算法、识别网址超链接等等
pod 'KJExtensionHandler'
pod 'KJExtensionHandler/Foundation'
pod 'KJExtensionHandler/Exception' # 异常处理
基类库 - 封装整理常用,采用链式处理,提炼独立工具
pod 'KJBaseHandler'
pod 'KJBaseHandler/Tool' # 工具相关
pod 'KJBaseHandler/Router' # 路由相关
播放器 - KJPlayer是一款视频播放器,AVPlayer的封装,继承UIView
视频可以边下边播,把播放器播放过的数据流缓存到本地,下次直接从缓冲读取播放
pod 'KJPlayer' # 播放器功能区
pod 'KJPlayer/KJPlayerView' # 自带展示界面
轮播图 - 支持缩放 多种pagecontrol 支持继承自定义样式 自带网络加载和缓存
pod 'KJBannerView' # 轮播图,网络图片加载 支持网络GIF和网络图片和本地图片混合轮播
加载Loading - 多种样式供选择 HUD控件封装
pod 'KJLoading' # 加载控件
菜单控件 - 下拉控件 选择控件
pod 'KJMenuView' # 菜单控件
工具库 - 推送工具、网络下载工具、识别网页图片工具等
pod 'KJWorkbox' # 系统工具
pod 'KJWorkbox/CommonBox'
Github地址:https://github.com/yangKJ
简书地址:https://www.jianshu.com/u/c84c00476ab6
博客地址:https://blog.csdn.net/qq_34534179
* 如果觉得好用,希望您能Star支持,你的 ⭐️ 是我持续更新的动力!
*
*********************************************************************************
*/
该库也一直在补充更新中,有需要的朋友可以pod 'KJExtensionHandler'
引入即可,内部很多我也都写了Demo,不懂的朋友可以去下载看看,还是不懂的话可以给我留言
--> 立志做一个善于总结和记录的假的程序员 <--
End
本文地址:https://blog.csdn.net/qq_34534179/article/details/109625395
推荐阅读