欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

iOS Category集合和异常处理

----> 日积月累 <----

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" /// 倒计时

iOS Category集合和异常处理

3、文本UILabel
快捷显示文本位置、富文本处理

#import "UILabel+KJCreate.h" /// 快速创建文本
#import "UILabel+KJAttributedString.h" // 富文本
#import "UILabel+KJExtension.h"// 文本尺寸

iOS Category集合和异常处理

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" /// 渐变处理 和 指定图形(直线、虚线、五角星、六边形、八边形)

iOS Category集合和异常处理

5、导航UINavigation

#import "UINavigationBar+KJExtension.h" // 设置NavigationBar背景
#import "UINavigationItem+KJExtension.h" // Item链式生成

iOS Category集合和异常处理

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" // 撤销输入

iOS Category集合和异常处理

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

iOS Category集合和异常处理

10、控制器UIViewController

#import "UIViewController+KJFullScreen.h" /// 充满全屏处理
#import "UISegmentedControl+KJCustom.h" /// 修改背景色和文字颜色

11、UICollectionView

  • 在CollectionView上面移动Item并且不影响正常CollectionView的左右滑动处理
#import "UICollectionView+KJTouch.h" /// 获取Touch事件

iOS Category集合和异常处理

12、滑杆UISlider

  • 渐变色滑杆,滑杆点击值修改
#import "KJColorSlider.h" /// 渐变色滑块
#import "UISlider+KJTapValue.h"

iOS Category集合和异常处理

13、CALayer

  • 简单的内阴影、外阴影、投影相关、倒影
//#import "KJShadowLayer.h" // 内阴影、外阴影、投影相关
//#import "CALayer+KJReflection.h" // 倒影处理

iOS Category集合和异常处理

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

相关标签: ios