ios
文章平均质量分 90
茶底世界之下
酷爱金属的鼓手,有时也要小清新。
展开
-
iOS 福利局之开发加速库分享
前言花了半天时间整理我平时用的工具库,详细介绍每个方法属性机器猫工具库,就像机器猫的口袋一样有无穷无尽意想不到的的各种道具供我们使用| ||:-|功能介绍本库主要包含几大板块:UIKit类、Foundation类、Language 多语言类、Classes 粒子效果相关、Control 自定义控件UIButton:图文混排、点击事件封装、扩大点击域、时间间隔限制、倒计时、点击粒子效果等UIView:手势封装、圆角渐变、Xib属性,基础动画封装等UITextView:输入框扩展、限制原创 2022-01-28 09:11:49 · 273 阅读 · 0 评论 -
OC版本的Moya插件网络架构
OC版本插件网络架构原创 2022-01-28 09:04:24 · 3412 阅读 · 0 评论 -
RxSwift + Moya + HandyJSON + 各种插件搭建响应式网络架构
基于 **RxSwift + Moya** 搭建响应式数据绑定网络API架构原创 2022-01-28 08:58:50 · 1015 阅读 · 0 评论 -
iOS 轻量化动态图像下载缓存框架实现
日常开发过程中,图片的下载会占用大量的带宽,图片的加载会消耗大量的性能和内存,正确的使用图片显得尤为重要。 同样也经常需要在各类型控件上读取网络图片和处理本地图片,例如:UIImageView、UIBtton、NSImageView、NSButton等等。原创 2023-07-19 09:11:44 · 210 阅读 · 0 评论 -
Kakapos全平台视频导出并添加滤镜工具
Kakapos是一个视频添加过滤器工具,支持网络和本地网址以及相册视频。同时可以简单的支持多种滤镜库,例如Harbeth、GPUImage、MetalPetal、CoreImage等等。反正核心其实就是对`CVPixelBuffer`进行注入滤镜处理,然后再导出视频即可。支持全平台系统,macOS、iOS、tvOS、watchOS原创 2023-02-01 10:22:50 · 199 阅读 · 0 评论 -
关于macOS替代品之CADisplayLink
CADisplayLink是一个能让我们以和屏幕刷新率相同的频率将内容画到屏幕上的定时器。原创 2023-01-10 15:17:04 · 329 阅读 · 0 评论 -
iOS 利用 Metal 实现滤镜与动效滤镜
Harbeth 是 Apple 的 Metal 框架上的一小部分实用程序和扩展,致力于使您的 Swift GPU 代码更加简洁,让您更快地构建管道原型。本文就来介绍与设计基于GPU的滤镜,图形处理和滤镜制作…👒👒👒原创 2022-03-07 17:48:09 · 6573 阅读 · 0 评论 -
如此之详细组件化私有库制作与引用流程
如何制作私有仓库在做组件化操作之前有个必须的操作,那就是如何制作私有仓库,以及私有仓库之间的引用问题。私有仓库 => 私有仓库 => 私有组件1、创建远端Spec仓库该仓库的目的作用就是存储私有库spec索引2、创建本地索引库并和远程索引库进行关联本地添加spec仓库pod repo add [Spec仓库名] [Spec仓库地址]例如:pod repo add PrivatePod git@github.com:xxxx/PrivatePod.git查看pod r原创 2022-02-10 09:04:21 · 355 阅读 · 0 评论 -
iOS 视频转码处理
前言苹果手机录制的视频在非Safari浏览器和安卓机器上面都无法直接播放,原因是因为直接录制的视频默认是mov格式,这是需要转换一下格式来处理其中包含多种转码方式[KJVideoFileTypeMov] = @".mov",[KJVideoFileTypeMp4] = @".mp4",[KJVideoFileTypeWav] = @".wav",[KJVideoFileTypeM4v] = @".m4v",[KJVideoFileTypeM4a] = @".m4a",[KJVideoFile原创 2020-10-22 18:04:02 · 1299 阅读 · 0 评论 -
iOS 工具篇一一Debug 和 Release 的区别和闪退处理
前言在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出。但是程序带有太多的NSLog输出,对App性能有影响,使用下面宏定义来处理,在开发的时候使用Debug模式,在发布的时候使用Release模式#ifdef DEBUG // 输出日志 (格式: [编译时间] [文件名] [方法名] [行号] [输出内容])#define NSLog(FORMAT, ...) fprintf(stderr,"------- 给我点赞 -------\n编译时间:%s\n原创 2020-10-22 09:14:02 · 1048 阅读 · 0 评论 -
iOS 工具篇一一如何导出ipa文件和ipa文件安装在手机
导出ipa文件1、打开Xcode -> Product -> Archive2、Distribute App -> Ad Hoc导出即可[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CGsktDac-1603176219906)(https://upload-images.jianshu.io/upload_images/1933747-9eb9c42ffa3db945.png?imageMogr2/auto-orient/strip%7Cimage原创 2020-10-22 09:13:52 · 3973 阅读 · 0 评论 -
iOS 工具篇一一Vision 图像识别框架人脸识别
GitHub地址:KJVisionDemo人脸矩形检测人脸特征识别[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Usb8rM1B-1603176244145)(https://upload-images.jianshu.io/upload_images/1933747-6d092ce749856bf6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]API架构 一 Vision框架共包括以下类VNRe原创 2020-10-21 09:32:59 · 2102 阅读 · 0 评论 -
iOS 架构篇——多版本切换应用
GitHub 地址:KJMoreTargetDemo前言很多时候我们可能会有用户版和管理员版,但是他们之间很多代码通用,这是就可以采用这种方式去处理同工程里面创建两个Target,然后通过判断Target来修改代码,这样都是基于同一套代码做修改,只是部分不相同的地方通过Target来添加不同代码,后期修改维护成本低* 啤酒Demo 和 鱼Demo 就是两个对应的项目框架整体介绍作者信息作者其他库使用方法作者信息Github地址:https://github.com/yangK原创 2020-10-21 09:32:36 · 250 阅读 · 0 评论 -
iOS 工具篇——Json数据自动生成 Model 文件
GitHub 地址:KJJsonToModelDemo前言当我们在创建数据Model时候,如网络请求数据过于复杂这时候就需要花费大量时间来创建数据模型,为了方便快捷,于是就引入了如下工具来将Json转换成Model文件。我也已经将此项目打包生成Dmg文件放在Res文件夹当中,如需要下载安装即可Dmg文件可视化界面操作将需要转换的json字符串放在坐标框内,转换即可实现代码//// ViewController.m// KJJsonToModelDemo//// Creat原创 2020-10-21 09:32:26 · 1392 阅读 · 0 评论 -
iOS WebView篇——长按网页里的图片识别图片中的二维码和保存图片
Demo地址:KJWebDiscernDemo前言不需要和H5做交互实现长按识别网页当中的图片,然后配合识别二维码功能即可实现长按识别网页当中二维码操作,于是有了下面的工具长按识别网页图片框架整体介绍作者信息作者其他库使用方法作者信息Github地址:https://github.com/yangKJ简书地址:https://www.jianshu.com/u/c84c00476ab6博客地址:https://blog.csdn.net/qq_34534179作者其他Pod原创 2020-10-21 09:32:12 · 1457 阅读 · 0 评论 -
iOS UI篇——轮播图Banner图片动图混合无限轮播
KJBannerView 是一款轮播Banner,自带图片下载、缓存相关功能、轻量级组件1.无任何第三方依赖、自带缓存加载 ☑️2.缩放无限循环滚动 ☑️3.自定义继承 KJBannerViewCell、定制特定样式 ☑️4.支持网络GIF和网络图片和本地图片混合轮播 ☑️5.支持在Storyboard和Xib中创建并配置其属性 ☑️Demo下载地址:KJBannerViewDemo功能介绍KJBannerView 是一款轮播Banner,自带图片下载、缓存相关功能、轻量级组件原创 2020-10-21 09:32:02 · 1190 阅读 · 0 评论 -
iOS 音频视频播放器实现边下载边播放缓存视频
播放器原创 2020-10-21 09:31:52 · 8657 阅读 · 0 评论 -
iOS UI篇——Button连按处理防止按钮连续点击
GitHub地址:KJEmitterView需求介绍:很多时候我们不希望按钮多次连按如果我们去写Enabled略显麻烦这里提供一种控制按钮点击间隔时间的方面我已封装成类型,方便使用h文件声明/********************这两个属性互斥********************//** 接受点击事件的时间间隔 */@property (nonatomic, assign) NSTimeInterval kj_AcceptEventTime;/** 接受点击事件执行处理之后的时原创 2020-10-21 09:31:37 · 583 阅读 · 0 评论 -
iOS UITableView性能优化处理
[UITableView性能优化]Cell是我们经常会使用的控件,以下几种方法可以大大提高性能1. 使用不透明视图不透明的视图可以极大地提高渲染的速度。因此如非必要,可以将table cell及其子视图的opaque属性设为YES(默认值)其中的特例包括背景色,它的alpha值应该为1(例如不要使用clearColor);图像的alpha值也应该为1,或者在画图时设为不透明。2. 不要重复创建不必要的tableCell前面说了,UITableView只需要一屏幕的UITableViewCel原创 2020-10-21 09:31:01 · 394 阅读 · 0 评论 -
iOS Runtime知识点
###什么是Runtime?我们写的代码在程序运行过程中都会被转化成runtime的C代码执行[target doSomething] 转化为 objc_msgSend(target, @selector(doSomething))OC中一切都被设计成了对象,我们都知道一个类被初始化成一个实例,这个实例就是一个对象。实际上一个类本质上也是一个对象,在runtime中用结构体表示。相关的定义:/// 描述类中的一个方法typedef struct objc_method *Method原创 2020-10-21 09:32:47 · 100 阅读 · 0 评论 -
GPUImage 过滤器相关
GPUImage 过滤器相关内置过滤器当前有125个内置过滤器,分为以下类别:颜色调整GPUImageBrightnessFilter:调整图像的亮度亮度:调整后的亮度(-1.0-1.0,默认值为0.0)GPUImageExposureFilter:调整图像的曝光曝光:调整后的曝光(-10.0-10.0,默认值为0.0)GPUImageContrastFilter:调整图像的对比度对比度:调整后的对比度(0.0-4.0,默认值为1.0)GPUImageSatu原创 2020-10-20 14:40:53 · 576 阅读 · 1 评论 -
iOS 打包处理和打包失败IPA processing failed
打包处理和打包失败IPA processing failed1、生成ipa包第一种快速生成1、编译command + B(备注:需要先配置好项目证书和描述文件)2、Products -> xxx.app -> Show in Finder -> 压缩,压缩完成后把压缩包后缀改为ipa第二种导出1、Xcode -> Product -> Archive2、Distribute App -> Ad Hoc导出附上4种导出ipa介绍:App Store Dep原创 2020-10-20 14:38:53 · 1047 阅读 · 0 评论 -
iOS PayPal集成和使用
一、创建并获取对应的ClientID1、登录paypal开发者网站PayPal开发者官网地址:https://developer.paypal.com/classic-home/2、创建AppDASHBOARD -> My Apps -> Creat APP3、获取ClientIDSandbox:测试环境Live:正式环境获取Sandbox对应的ClientID二、引入sdk1、采用CocoaPodspod ‘PayPal-iOS-SDK’2、注册环境/// A原创 2020-10-20 14:38:22 · 1655 阅读 · 3 评论 -
iOS 系统自带截屏分享
分享一篇iOS系统自带截屏分享使用方案UIImage *image = [KJTools kj_shareWithHideBlock:^bool{ /// 隐藏不需要截图的区域 return YES;}];[KJTools kj_share:@[UIImagePNGRepresentation(image)] ViewController:weakself Success:^(BOOL success) { /// 分享完成处理}];简单粗暴,贴上代码/// 分享截图原创 2020-10-20 14:37:42 · 390 阅读 · 0 评论 -
iOS UICollectionView左右滚动和上下滑动处理
最近做了一个这样子的需求,在CollectionView上面移动Item并且不影响正常CollectionView的左右滑动处理。当然TableView其实和CollectionView道理是一样的,可以采用同样的方式去处理这里提供两种思路第一种,在Item上面添加Pan手势处理,在Pan当中去做逻辑判断处理,然后手动改变contentOffsetItem里面的代码处理:__block bool move = false;__block CGPoint beginPoint原创 2020-10-20 14:36:22 · 3212 阅读 · 0 评论 -
Mac 修改应用图标
修改Mac应用图标1、创建文件夹,将要转换的图片放入其中命名为xxx.png备注:这里图片尺寸必须是1024x10242、终端cd到该文件夹cd /Users/yangkejun/Desktop/xxx3、创建临时目录mkdir Hexchat.iconset4、将原图片转为不同大小的图片,并放入上面的临时目录sips -z 16 16 xxx.png --out Hexchat.iconset/icon_16x16.pngsips -z 32 32 xxx.png原创 2020-10-20 14:35:49 · 673 阅读 · 0 评论 -
iOS 视图UIView添加手势回调
视图UIView添加手势回调UIView添加扩展处理H文件NS_ASSUME_NONNULL_BEGINtypedef void(^KJGestureRecognizerBlock)(UIView *view, UIGestureRecognizer *gesture);typedef NS_ENUM(NSUInteger, KJGestureType) { KJGestureTypeTap, // 点击 KJGestureTypeDouble, // 双击原创 2020-10-20 14:35:18 · 298 阅读 · 0 评论 -
iOS NSException崩溃处理
本文主要介绍如何防止Foundation当中的常见崩溃处理Demo地址:KJExtensionHandler熟悉又讨厌的崩溃*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects原创 2020-10-20 14:34:47 · 1449 阅读 · 0 评论 -
iOS 屏幕比例适配
本文主要介绍如何简单快捷的使用屏幕适配,快速按照设计图尺寸布局简单使用在最初的地方AppDelegate里面调用 [UIResponder kj_adaptModelType:KJAdaptTypeIPhone6];然后在需要适配的地方 替换 CGRectMake 为 KJAdaptRectMakeview.frame = CGRectMake(0, 0, 10, 10);替换为view.frame = KJAdaptRectMake(0, 0, 10, 10);即可完成简单的屏幕比例适配原创 2020-10-20 14:33:24 · 895 阅读 · 1 评论 -
Framework带资源文件封装
简书地址[简书地址](https://www.jianshu.com/p/2cdaab20ea72)一、新建主项目主项目的ProjectName是HelloFramework( SDK的主项目 )二、创建Framework在主项目里创建Framework,暂时命名MyFrameworkProject - > Editor - > Add Larget - > Coc...原创 2018-11-29 23:24:35 · 640 阅读 · 0 评论 -
开源框架到CocoaPods
KJEmitterViewa simple project for KJEmitterDemo这个工程提供了一些iOS开发中用到的类目, 方便开发pod ‘KJEmitterView’相关Demo下载地址[Demo下载地址](https://github.com/yangKJ/KJEmitterView)简书地址[简书地址](https://www.jianshu.com/p/3...原创 2018-11-29 20:10:16 · 1748 阅读 · 0 评论