自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 iOS代码判断工程是否有添加某个framework库

判断工程是否有添加某个framework库

2023-08-20 14:26:39 185

原创 iOS 解析闪退信息

iOS 解析闪退信息

2023-08-05 20:35:12 249

原创 Swift获取当前网络状态Wifi/5G/4G/3G/2G

Swift获取当前网络状态WiFi/5G4G/3G/2G

2022-11-07 23:34:59 2700

原创 iOS获取当前网络连接状态WiFi、5G、4G、3G、2G

iOS获取网络连接状态WiFi/5G/4G/3G/2G

2022-11-07 23:05:29 2710

原创 Xcode14&iOS16对开发者的影响

iOS16真机调试需要开启开发者模式,Xcode14编译出的Framework在Xcode低版本会编译报错,iOS14以下读取剪贴板内容需要引入SwiftUI库

2022-11-07 12:36:20 2468

原创 iOS替换应用图标

iOS动态替换应用图标&&OC、Swift无感替换图标

2022-11-04 00:47:46 2538 2

原创 .a静态库解包

在遇到导入第三方库运行发现xxx.o文件冲突。 为了查看导入的第三方库包里面包含的.o文件 具体操作如下: 在桌面创建一个resource文件夹,里面放一个libcrypto.a库 打开终端 cd 到 resource文件夹目录下cd /Users/luqichun/Desktop/resource 查看 libcrypto.a 支持什么架构lipo -info libcrypto.a显示支

2017-08-16 23:40:22 6429

原创 AFNetworking 请求工具类

在项目开发中 网络请求框架,当下使用人数最多的应该就是AFNetworking,AFN自3.0后全面使用session 请求网络数据. 这里附上AFN GitHub的下载地址:AFNetworking 为了更便捷的使用AFN,今天对AFN的使用进行了简单封装,如下创建一个类QCHttpTool继承自NSObject QCHttpTool.h 代码如下//// QCHttpTool.h//

2017-08-10 00:01:20 475

原创 swift 自定义log输出

开发过程中log的输出对调试起着重要的作用,以下就讲述一下swift开发中的自定义输出。首先配置一下标识,让Debug模式才打印自定义输出 一般默认创建swift项目 就会有这个DEBUG标识 创建一个swift 文件作为类似OC中的PCH文件 在头文件中编写自定义log输出方法//自定义输出 #file 指文件名 #line 指所在行数func QCLog<T>(message

2017-08-09 23:30:28 905

原创 swift16进制转换成UIColor

swift 中利用UIColor扩展创建16进制转UIColor类如下: 代码如下:extension UIColor { class func hexStringToColor(hexString: String) -> UIColor{ var cString: String = hexString.trimmingCharacters(in: NSCharacterS

2017-08-02 23:04:02 718

原创 swift纯代码UITabBarController的使用

最近在OC的基础上开始学习swift,以下是swift纯代码搭建项目架构效果图 创建一个项目 选择swift语言 将项目中的main.storyboard ,ViewController ,LaunchScreen.storyboard 删除,并将main取消为主窗口 以上操作跟OC纯代码项目架构操作一样,接下来直接上代码 在AppDelegate 类中创建主窗口并设置根控制

2017-08-02 22:54:43 4191

原创 iOS静态库的创建跟使用

库:是代码的集合,是共享代码的一种形式,库分为开源库跟闭源库。开源库 公开源代码,能看到具体实现过程。 如:AFNetworking,SDWebImage 闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现。 分为静态库跟动态库iOS中静态库以.a和.framework的形式存在,动态库以.dylib和.framework形式存在。 苹果禁止用户在项目中自己创建使用动态库,如

2017-05-21 16:28:24 443

原创 UUID跟UDID的区别

UDID UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识.UDID是一个40位十六进制序列,它就是跟设备相关联的,有点类似MAC地址,但在iOS5.0之后苹果就禁止开发者通过代码获取这个UDID。 不能通过代码获取UDID 但是我们还是可以通过其他途径查看到设备的UDID,iTunes获取UDID: 1.将手机设备连接上电脑 2.打开iTunes点击

2017-05-13 09:58:31 2221

原创 iOS10.0中info.plist文件权限设置

提到iOS10.0权限设置,先说一下在iOS9.0的权限设置iOS9.0引入了新特性App Transport Security (ATS),导致网络请求访问失败,新特性要求App内访问的网络必须使用HTTPS协议,也就是超文本传输协议。 但是现在很多公司使用的还是http协议,也不可能一下子就改为HTTPS;为了让http请求也能正常范文网络数据,解决的办法如下: 在info.plist文件中

2017-05-12 10:59:22 16828

原创 利用CAGradientLayer绘制颜色渐变动画

之前项目中,UI设计师要求金融理财模块做成如下效果图: 其中有涉及相应的动画 比如类似进度条图层颜色渐变动画,现将实现记录如下:图层颜色渐变主要通过CAGradientLayer这个类进行实现自定义一个控制器用来展示图层渐变动画 在此控制器中声明如下属性//开启动画@property (nonatomic,strong) UIButton *startAnimationBtn;//显示动

2017-05-10 16:28:08 2393

原创 methodSwizzling的使用

之前公司的项目,产品经理要求,在项目中,集成页面统计,项目主要集成的友盟页面统计,至于友盟统计集成可参照友盟官网集成。 以下主要记录的是methodSwizzling在项目中的使用 Method swizzling 用于改变一个已经存在的selector的实现。这项技术使得在运行时通过改变 selector 在类的消息分发列表中的映射从而改变方法的实现成为可能。 例如:我们想要在一款 iOS

2017-05-09 18:17:02 376

原创 WKWebView的使用

iOS8.0之后苹果推出了新框架Webkit,提供了WKWebView的组件,用来替换UIWebView。之前UIWebView 加载速度慢,占用内存大,如果加载的网页比较多,占用内存比较大可能还会导致项目crash。WKWebView在性能上有了很大的优化,占用内存小,允许JavaScript的Nitro库加载并使用,支持了更多的HTML5特性。WKWebView的使用 自定义一个WKWebVC

2017-04-26 14:02:22 785

原创 NSHTTPCookie的使用

在项目中用UIWebView根据请求链接加载一篇文章,产品要求在导航栏上加一个分享按钮将这边文章分享出去,但是在当前的页面也就只能获取请求文章的链接,分享的模板需要有标题,子标题,还有图片,还有点开分享出去的跳转链接。后台不允许增加字段,跟前端开发大佬商量后,大佬介绍说试试通过请求链接拿到cookie中的数据,他会把要分享出去的内容加在cookie上,类似字典去获取,我第一次听到感觉是一脸懵逼的,后

2017-04-21 13:04:55 2078

原创 UIWebView与iOS端交互

在iOS开发中少不了使用UIWebView,以下是自己使用的总结: 初始化webView 很简单自定义了一个WebVC控制器#import <UIKit/UIKit.h>@interface WebVC : UIViewController@property (nonatomic,copy) NSString *urlStr;@property (nonatomic,strong) UIWebV

2017-04-21 12:06:59 457

原创 iOS端与网页之间的交互

在app中经常会加载一些网页,然后在网页上进行相应的操作,比如我们公司的项目加载了一遍网页文章,我要通过点击网页上的按钮通知我去调用我的app弹出分享模块,然后把这遍文章分享出去。实现的方式如下: 首先跟web前端约定好了一种协议,app端我负责监听网页给我发出通知协议,根据约定好的协议进行相应的操作AppDelegate 里面负责监听网页的进一步操作//从第三方app跳转到自己的app时调用-

2017-04-19 17:30:14 682

原创 app内置开机小游戏

像很多app都是在升级新版本后,一进入首页就有个类似抢红包的小游戏。之前我们公司为了新版本发布会,希望内置一个开机抢金币的小游戏,现在就记录一下实现的过程。首先 内置h5网页游戏 需要前端开发将做好的游戏打包成一个包,我们直接将游戏包拖到我们的项目中: 接下来就是需要获取网页游戏资源并加载到网页上 比如在首页控制器View将要展示的时候加载网页游戏- (void)viewWillAppear

2017-04-18 12:16:46 807

原创 颜色Colours的使用

开发项目时,颜色的设置是常有的事,为了更好实现设计师的效果图各种颜色,在项目中使用了Colours这个别人写好的类进行设置颜色。 Colours 包含Colours.h和Colours.m文件 关于这两个文件可到gitHub上下载:Colours 如何使用 1.将Colours.h和Colours.m文件拖入到项目中; 2.在需要使用的地方导入头文件#import “Colours.

2017-04-17 22:48:32 668

原创 定时器被阻隔的处理方法

当一个页面上同时有UIScrollView 和定时器倒计时(图片轮播器)时,拖动UIScrollView,定时器会暂停,停止拖动UIScrollView,定时器恢复正常。这是什么原因导致呢? 原因就是定时器的runLoop级别没有UIScrollView 滚动的高 解决方法如下:[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLo

2017-04-17 20:30:00 770

原创 正则表达式的使用

在项目中经常会要求用户输入一些信息,比如注册 登录 输入手机号,验证码,填写个人信息 如填写身份证等,有时候会输入错误,为了更好的提醒到用户,项目中用到了 正则匹配。 对于正则表达式的讲解可以参考此链接:正则表达式的使用在项目中用到了字符串分类,通过对输入的字符进行正则匹配#import <Foundation/Foundation.h>@interface NSString (Custom)ty

2017-04-16 19:10:47 378

原创 点击按钮实现缩放动画

前段时间在项目中使用到了 CAKeyframeAnimation ,利用帧动画实现点击按钮缩放动画!以下是自己的简单案例记录自定义一个按钮类 继承自UIButton#import <UIKit/UIKit.h>@interface CustomAnimationBtn : UIButton//执行动画- (void)playKeyAnimation;@end动画执行的方法:#import "C

2017-04-16 14:14:38 2356

原创 导航栏侧滑手势返回

导航栏控制器View上自带了侧滑返回的手势,不过触发范围只能在左边导航控制器自带的滑动手势为:interactivePopGestureRecognizer 我的项目中全局使用的是自定义的导航控制器,通过以下几行简单的代码就能实现导航控制器滑动返回效果 首先:让我的导航控制器遵守滑动手势协议:UIGestureRecognizerDelegate 在push前做一些操作 遵守导航控制器协议UIN

2017-04-10 08:18:28 777

原创 app打包上架

今天刚好项目需要打包上架,随手截了几张图记录一下上架的流程 具体可以参照网上大佬的详细流程: 打包发布流程 1.首先需要准备证书 2.利用Xcode打包提交app store 进行审核 以下是指已经安装好证书的操作 2.1检查好代码运行无错无bug 利用Xcode 进行打包如下: 接下来在真机的环境进行打包 接下来点击export 到处ipa包你方便找到的位置 我

2017-04-07 00:38:27 460

原创 银行卡输入每4位自动加空格

监听textField 输入值的变化[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldTextDidChangeAction:) name:UITextFieldTextDidChangeNotification object:nil];在通知方法中对输入的值进行改变如下:- (voi

2017-04-05 10:16:15 1082

原创 const在项目中的用途

看到很多项目中都会用到const,今天就总结了一下 const 是C语言内容,在ios开发中经常会用到,用途有点类似 define 宏定义,但跟宏定义还是有所不同的宏:宏定义属于预编译指令,在程序运行之前已经编译好了,在预编译之间进行文本间替换,相当于是开辟了一块临时空间。const:const修饰的只开辟一块空间,节约占用内存资源一般在项目中经常用到const 如下:在局部类中使用用static

2017-04-04 01:44:03 426

原创 项目中导入字体库

UI设计的效果图字体项目自带的没有 通过:NSLog(@"familyNames --- %@",[UIFont familyNames]);可以查看自带的字体库有哪些将外部字体库导入项目中 后缀是otf,跟ttf的字体库 ios项目都是支持的将字体库文件直接拖到项目中,如下图: 再在info.plist 中增加字段Fonts provided by application 添加item

2017-04-01 00:19:29 893

原创 检测当前网络状态

在项目中用到的是网络请求框架是AFN在项目运行中检测网络连接状态,适当提醒用户当前网络连接状态,更加提高app的用户体验[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status

2017-03-31 23:54:19 457

原创 状态栏的隐藏跟显示

隐藏状态栏有两种方式 第一种:只在当前控制器隐藏状态栏- (BOOL)prefersStatusBarHidden{ return YES;}第二种:整个项目隐藏状态栏 在info.plist上添加一项:Status bar is initially hidden,value为YES; 在info.plist上再添加一项:View controller-based status

2017-03-30 23:53:42 396

原创 自定义UIPageControl

系统自带的UIPageControl 默认是不能更改大小以及显示图片。 通过继承自UIPageControl 来更改page的大小 方法如下: 重写setCurrentPage的方法- (void) setCurrentPage:(NSInteger)page { [super setCurrentPage:page]; for (NSUInteger subviewIn

2017-01-04 22:38:46 315

原创 关于点击手势冲突的处理

一般 当弹出键盘 后点击空白地方收起键盘 由于键盘是自定义的,所以我想到的是在当前的View上添加点击手势。监听文本值的变化,当值变化按钮可以点击//监听值的改变 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldChanged:) name:UITextFieldTextD

2017-01-04 00:06:52 445

原创 自定义数字键盘

上周公司项目 要求做支付充值 弹出的数字键盘 可以跟支付宝一样,系统自带的外观不好看,要想做到像支付宝那样,想了想也就自己自定义做了。做完后发现也不难。UITextField 有一个inputView的属性 这个属性 就是弹出键盘的View,将自定义的键盘的View赋值给inputView 实现了 弹出自定义键盘。实现的步骤如下: 用一个UIView 搭建键盘 UI// CZKeyBoardVi

2017-01-03 23:46:15 681

原创 关于cocoapods遇到的问题

好久没有将公司项目拉到自己的私人电脑上,最近从git上拉代码遇到一个问题。如下: 表示cocoapods 太久没用了,本地的repo库太长时间没有更新了 所以需要运行:pod repo update 更新本地的repo库使用CocoaPods来管理第三方库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个

2016-10-17 00:34:56 255

原创 [!] Invalid `Podfile` file: undefined method `inherit!' for #<Pod::Podfile:0x007fece49911e0>. Updati

从git 上拉下来的代码 一运行就报错如下: The file “Pods-SAGA_iOS.debug.xcconfig” couldn’t be opened because there is no such file. (/Users/luqichun/Desktop/iOS/SAGA_iOS/Pods/Target Support Files/Pods-SAGA_iOS/Pods-SAGA

2016-10-16 23:38:45 3425

原创 自定义下拉刷新

项目中为了实现类似下图的下拉刷新 我想到的是MJRefresh 下拉刷新自定义 下拉一定程度自动旋转 刷新加载数据过程旋转 实现过程如下: 导入最新的MJRefresh框架或者是通过cocoapods进行下载最新的MJ下拉刷新框架 这里我通过集成自MJRefreshHeader 实现自定义刷新 实现代码如下:#import "CZRefreshHeader.h"@interface

2016-09-13 12:43:37 365

原创 实现按照字母分类分组排序

为了实现上图字母分类排序 实现过程借鉴了网上 大神的博客笔记 http://www.cnblogs.com/fxiaoquan/p/4724208.html 实现过程如下: 下载 pinyin.c 和 pinyin.h 文件 导入到项目中 这里创建一个处理对象的数据模型 将大神的代码copy到模型中 替换成自己想要的数据模型//// ChineseString.h// S

2016-09-13 12:03:21 1542

原创 倒计时定时器

项目要求 根据后台返回的时间戳 进行商品拍卖定时倒计时 后台返回的时间格式是:yyyy-MM-dd HH:mm:ss 写了一个时间转换工具将后台返回的时间字符串转换为指定的时间格式如下:+ (NSTimeInterval)timeIntervalSinceNowWithDateStr:(NSString *)dateStr { NSDateFormatter *formatter = [

2016-09-13 11:11:47 515

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除