自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

H.A.N的博客

Objective-C、Swift、热更新、APICloud跨平台开发、Flutter学习实践指南、性能优化实践指南

  • 博客(17)
  • 资源 (26)
  • 收藏
  • 关注

原创 iOS 项目启动时间优化之pre-main 时间

苹果为查看 pre-main 提供了支持,具体配置如下,配置的 key 为:DYLD_PRINT_STATISTICS。然后再运行项目,Xcode 就会在控制台输出这部分 pre-main 的耗时:Total pre-main time: 2.2 seconds (100.0%) dylib loading time: 1.0 seconds (45.2%)re

2017-12-05 14:58:03 4388

原创 iOS js判断移动端是否安装某款app的方法

一、判断是那种设备var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端二、ios设备:原理:判断是否认识这个协议,认识则直接跳转,不认识就在这里下载appios();if(isiOS){ function ios(){ var ifr = document.createElement(

2017-12-28 08:53:42 15124 2

转载 iOS 仿QQ录音以及振幅动画实现

我们尽量的把QQ的录音功能对应的细节都实现了。。。本篇实现的功能:1、封装AVAudioRecorder以及AVAudioPlayer实现录音以及播放功能。2、实现录音时的振幅动画。3、播放时环形进度条和振幅动画,以及一些零碎的交互细节。4、变声效果。5、发送时录音文件的路径,以及取消发送删除录音文件细节都做了。。

2017-12-27 11:11:25 6192 1

转载 iOS 花式二维码生成和二维码识别(Swift 版)

iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个小库方便以后使用。项目地址:github.com/EyreFree/EF…EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,基于 CoreImage 进行开发

2017-12-27 10:20:23 1111

原创 iOS 线程安全与锁

在iOS编码中,锁的出现其实是因为多线程会出现线程安全的问题。那么,问题来了,什么是线程安全?为什么锁可以解决线程安全问题?单线程是不是绝对的线程安全?iOS编程有多少种锁?加解锁的效率如何?一、什么是线程安全?WIKI: Thread-safe code only manipulates shared data structures in a ma

2017-12-23 13:24:06 397

原创 iOS App的整个生命周期

程序启动顺序图具体执行流程- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    NSLog(@"--- %s ---",__func__);//__func__打印方法名

2017-12-23 13:12:59 274

原创 iOS iPhoneX-WebView适配问题

前言:iOS11之后引入了安全区域的概念,对此的影响主要表现在scroview的子类,但是在适配安全区域的时候发现了一些不科学的现象。安全区域适配if (@available(ios 11.0,*)) { UIScrollView.appearance.contentInsetAdjustmentBehavior = UISc

2017-12-23 11:20:09 6905

原创 iOS .framework静态库的封装

一、framework静态库的创建1.创建工程选择iOS/Framework & Library,选择Coaoa Touch Framework2.删除自动生成的头文件.注意: Info.plist不能删除3.创建Tool类,并对应提供log类方法,实现log类方法// Tool.h文件中提供接口+ (void)

2017-12-18 16:16:00 2275

原创 iOS 重构代码 - 我是如何删掉 6 万行代码并且不删减原有功能的

我列个列表吧:删除没用到的第三方库删除不合理的第三方库,使用系统自带的或者自己造轮子删除定义好但是没有用到的变量删除 import 进来但是没有用到的头文件删除更旧项目留下来的用不到的逻辑Controller 层不合理的层级结构重构,无用代码清理View 层不合理的结构重构Service 层冗余的写法重构Model 层不合理的写法重构拆开不合理的耦合耦合一个类别的模块修复了多处内存泄露修复了多处循...

2017-12-16 09:35:36 2413 1

原创 iOS base64 加密解密 通用类

在使用过程中,直接将被类引入到项目中即可,不需要其它辅助类。使用示例:  将此通用类的头文件引入到目标类后,直接使用类名进行调用即可。 NSString *str = [NSString stringWithFormat:@"YWE="]; NSString *str1 = [NSString stringWithFormat:@"aa"]; NSLog(@"res

2017-12-12 10:00:01 3043

原创 iOS 键盘只能输入字母和数字

键盘类型textFiled.keyboardType = UIKeyboardTypeASCIICapable;1先定义几个宏#define NUM @"0123456789"#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"#define ALPHANUM @"ABCDEFGHIJKLMN

2017-12-11 17:53:07 1693

原创 iOS 本地动态验证码生成

用于ios本地动态生成验证码,效果如下:导入CoreGraphics.framework用于绘制图形封装UIView,便捷使用,代码如下:AuthcodeView.h#import @interface AuthcodeView : UIView@property (strong, nonatomic) NSArray *dataArra

2017-12-11 14:08:54 495

原创 iOS 开发中方法延迟执行的几种方式

Method1. performSelector方法Method2. NSTimer定时器Method3. NSThread线程的sleepMethod4. GCD公用延迟执行方法- (void)delayMethod{ NSLog(@"delayMethodEnd");}Method1:performSelector[self perf

2017-12-07 10:58:15 410

原创 iOS 退款(或订单)推送消息语音播报

近期无知经理突然提出一个蛋疼的需求,并表示这是“客户和市场强制要求”做的。。。没办法,只能硬着头皮上了。之前采用的是静默推送+普通推送,而且网上大部分资料也默认使用的是静默推送方式。据我所知,该方案有一定的缺陷:1.部分机器收不到语音播报;2.若需要在后台或锁屏状态下播报语音时,上架会遇到"Audio,AirPlay,and Picture in Picture

2017-12-05 10:26:38 3233

原创 iOS 动画实战之Lottie动画

如果把iOS动画分为两类: 交互式动画, 播放式动画, 那么其中的播放动画完全可以使用Lottie来完成, 例如:1.作为收藏按钮, 是不是很活泼?2.返回与菜单之间的切换, 生动有趣!3.还有各种形变动画.更棒的是, Lottie有各种不同的版本, 安卓, iOS, 前端都可以使用, 理论上动画做一套就可以共用, 大大的减少了工作量.使用方法

2017-12-04 16:07:36 593

原创 iOS 设置badgeValue 的小技巧

pragma mark -- 角标提示 如果大于 0 显示,否则隐藏我们项目中会使用到 badgeValue 用于提醒个数,会遇到变为 0 后,badgeValue 隐藏的问题,可以加一个判断实现。totleUnreadCounts 为消息个数if (totleUnreadCounts > 0) { self.navigationController.ta

2017-12-04 10:57:36 3126 1

原创 iOS 项目统计总代码行数

步骤一:打开终端,用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来:find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l其中 -name &

2017-12-01 16:30:37 233

IDEA for mac汉化(2018.2)

IDEA for mac汉化版本2018.2;IDEA for mac汉化版本2018.2

2018-11-30

IDEA for mac汉化(2016.3)

IntelliJ IDEA for mac汉化,汉化版本2016.3。更新时间:2016-03-19 22:46:00

2018-11-30

仿美团、饿了么加入购物车以及加入购物车动画

仿美团、饿了么加入购物车以及加入购物车动画;可自定义话动画样式

2018-11-19

一份走心的JS-Native交互电子书

一份走心的JS-Native交互电子书,能够帮助更多的同学掌握 Hybrid 在 iOS 中的应用。

2018-11-19

带警示效果的TextField、改变光标起始位置

带警示效果的TextField、改变光标起始位置;自由定制;

2018-11-19

排序按钮封装、升序、降序

排序按钮封装、升序、降序;按钮一共有三种状态:非选中、选中升序、选中降序。

2018-11-19

几代码实现导航栏透明渐变、实现TabBar中间凸起

几代码实现导航栏透明渐变、实现TabBar中间凸起;可自定义

2018-11-19

实现支付宝语音收款功能、串行语音播报

语音播报。 语音播报需求运用最为广泛的应该是收银对账了,就类似于支付宝、微信、收钱吧等的收款语音提示一样。

2018-11-19

支持控制台‘po’打印,打印中文字典/数组,支持格式化

支持控制台‘po’打印,打印中文字典/数组,支持格式化;

2018-11-19

弹框大全,代理,block等实现

弹窗大全实现思路:1.通过代理方法回调的弹窗;2.通过block回调封装的弹窗;3.通过xib创建封装的弹窗;4.新建控制器作为弹窗

2018-11-19

动手搭建一个简单的区块链

区块链就是一个不可变、有序的链(chain)结构,链中保存着称之为块(block)的记录,这些记录可以是交易,文件或是任意你想要的数据。其中重要的是它们通过哈希链接在一起。

2018-11-19

数组越界处理,Runtime处理,分类处理

数组越界处理、Runtime处理、分类处理,使用不同的方法

2018-11-19

启动加载广告思路、广告View封装

启动加载广告思路、广告View封装;可自定义设置广告。

2018-11-19

OC与JS的交互(WKWebview-MessageHandler实现)

iOS 中实现加载 web 页面主要有两种控件,UIWebView 和 WKWebview,两种控件对应具体的实现方法不同。WKWebView是苹果公司在iOS8系统推出的,这里我们主要概述WebKit中更新的WKWebView控件的新特性与使用方法。

2018-11-16

使用iconfont图标

在iOS中使用iconfont图标替换原始切图,减少IPA大小。

2018-11-16

搭建App框架(MVVM+RAC+路由)

项目使用了ReactiveCocoa框架,实现了MVVM架构,使用MVVM架构主要目的是分离视图(View)和模型(Model)。

2018-11-16

一个UICollectionView轻松搞定顶部悬停效果、顶部悬停效果、collectionView达到悬停效果

一个UICollectionView轻松搞定顶部悬停效果、顶部悬停效果、collectionView达到悬停效果

2018-11-16

3D卡片轮播,卡片轮播,无限轮播,DIY

参考UITableView的UITableViewDataSource和UITableViewDelegate两个方法实现;支持五险轮播,可以加载本地图片,也可以加载网络图片,可以根据自己的需求自定义。

2018-11-16

仿某宝,自定义选择地址

自定义选择地址封装,仿某宝。根据需求定制化修改源代码

2018-07-19

自定义索引控件封装

自定义索引控件,可以根据自己的需求修改源代码。定制化

2018-07-19

Base64加密解密封装

自定义密码表,Base64加密解密代码封装,源代码可以进行自定义

2018-07-19

UILabel内容中某个文字添加点击事件

简单方便的给UILabel内容中某几个文字添加点击事件,实现定制要求

2018-07-19

简单代码实现跑炫酷马灯效果

简单实现炫酷的跑马灯,可自定义效果。修改源代码定制

2018-07-19

一行代码实现星级评价

超简单的实现星级评价,简单封装,简单的实现。可以随心修改源代码

2018-07-19

隐式切换主控制器代码

一行代码,可以巧妙切换主控制器,实现你想要的效果,不信你可试试

2018-01-31

倒计时封装

功能强大的短信倒计时,一行代码调用,方便简单解决问题

2018-01-31

空空如也

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

TA关注的人

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