自定义博客皮肤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学习实践指南、性能优化实践指南

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

原创 iOS 网络请求优化之取消请求

页面返回的时候,将网络请求取消同一个请求多次请求时,短时间忽略相同的请求同一个请求多次请求时,取消之前发出的请求发送的请求,多次尝试并确保成功最近发现很多网络请求都有可以优化的地方,虽然开发和测试都没有发现问题,但是可以让代码更加的优雅。想到了有四个方面可以优化,亲测有效。1. 页面返回的时候取消网络请求在一个界面进行多个请求的时候,而有可能用户马上点击了返回按钮,那么如果是...

2018-09-30 10:06:42 2658

原创 iOS 谈一谈自适应Cell的高度缓存

系统如何计算的自适应高度?系统计算的行高会不会被缓存?如何缓存?前几天读文档的时候发现一对方法- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize NS_AVAILABLE_IOS(6_0); - (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHoriz...

2018-09-28 17:46:43 932

原创 iOS 性能优化篇

苦逼周末加班,无心干活,写一篇文章打发时间。先来谈谈CPU和GPU在屏幕成像的过程中,CPU和GPU起着至关重要的作用CPU( Central Processing Unit, 中央处理器)就是机器的“大脑”,也是布局谋略、发号施令、控制行动的“总司令官”。CPU的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Cont...

2018-09-16 14:22:22 507

原创 iOS 性能优化之页面加载速率

前言之前搜罗了网上很多关于iOS性能优化方面的资料 ,本人和我的小伙伴们也用了一些时间针对自己的App进行了App的启动速率、页面的加载速率和 页面的帧率方面进行了优化,所以结合了理论和实践,把我们在实践中主要踩过的坑和需要注意的东西 ,总结了一下,希望可以帮到正在准备进行App的性能优化的你。今天主要讲一下App的页面加载速率的优化。目的为了找到真正使我们的App缓慢的原因,我们...

2018-09-14 15:42:22 2419

原创 iOS 代码瘦身实践(二)

一、分析当前ipa的组成一般一个ipa会包含:1. 资源文件本地文件:数据、配置、数据库等等字体文件图片资源2. 源代码通过生成linkmap文件,分析源代码生成的编译文件的大小。在Build Settings中Write Link Map File设置为Yes (记住release时候不要设置为Yes)。编译之后会在build目录中生成两个LinkMap文件:...

2018-09-04 09:22:52 368

原创 iOS WKWebView 拦截超链接

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{ // 1.拦截请求...

2018-09-30 14:44:10 6743

原创 iOS UITextField的光标起始位置改变实现

UITextField作为输入框,在很多场景都会使用,一般我们都是对齐默认的布局做一些更改,常用的可能会修改光标的颜色,placeholder的颜色,字体等等,有些修改直接设置UITextField的属性就可以,有些则没有,需要重写它提供的一些方法才可以,有些则怎么都办不到,例如修改光标的宽度,如果哪位知道,请告诉我下,谢谢。一、 修改光标的位置修改光标的位置也就是修改可编辑区域的位置,默认属...

2018-09-30 09:38:35 3849

原创 iOS 适配iPhone XR/iPhone XS Max

快速适配先说结论,找设计师要2张启动图:iPhone XR:828px x 1792pxiPhone XS Max: 1242px x 2688px代码中使用了屏幕size判断是否是iPhone X的需要修改,请翻到最后。LaunchImage中只有iPhone X/iPhone XSXCode GM Bug?项目中使用LaunchImage来做启动图,那么有可能在XCode GM...

2018-09-29 16:45:23 1292

原创 Flutter 混合工程改造实践

背景由于原有的 iOS 和 Android 工程都已相当庞大,如何将 Flutter 无缝桥接到这些大工程并保证开发效率不受影响成为优先要解决的问题。本文针对项目实践人员给出了一种通用的工程改造方案,希望为准备转型 Flutter 的团队提供参考。问题Flutter 的工程结构比较特殊,由 Flutter 目录再分别包含 Native 工程的目录(即 iOS 和 Android 两个目...

2018-09-28 16:19:40 445

原创 iOS 弹窗大全

在我们的实际开发项目中,弹窗是必不可少的,很多时候我们用的是系统的AlertViewController,但是实际情况中,并不能满足我们的开发需求,这个时候我们需要的就是自定义自己的弹窗效果。接下来我会写一些自己的所封装的弹窗效果。包括代理delegate回调,block 回调,xib新建view来创建我们需要的弹窗效果。官方思路1.在我们自己动手之前一定要先看看官方是怎么封装的,这样我们写出...

2018-09-28 09:35:26 2023

转载 GitHub 的中国乱象:刷星、高仿、骂街和版聊

今天,我们关注一下人称全球最大程序员交友社区的 GitHub。这两天有朋友问我:你有关注前端圈最近的娱乐大新闻吗?然后扔给我一个网站,名叫前端娱乐圈:点进去看了下,是另一个程序员社区“掘金”的页面。ID 名为“花裤衩”的用户放了一张截图:虽然硅星人自己不是程序员,倒也还是对 GitHub 稍有了解的。这个 Trending 是统计项目每日增加的星数 (Star) 得来的,而在 GitH...

2018-09-28 08:55:49 2801 2

转载 iPhone 检测 iPhone X 设备的几种方式和分辨率终极指南

本文是我们前两天发的两条小集的汇总,主要包括三部分:iPhone 屏幕分辨率总结如何适配新的 iPhone X 设备检测设备是否为 iPhone X/XS/XR 的几种方式iPhone 屏幕分辨率终极指南上周,苹果发布了三款新的 iPhone 设备,它们的屏幕数据分别如下:iPhone XS: 5.8 英寸,375pt * 812pt (@3x);iPhone XR: 6.1...

2018-09-21 08:50:00 6524

原创 iOS 开发者应该掌握些 C++ 知识

作为一名 iOS 开发者,最近由于开发音频播放器需要一些 C++ 的知识,便开始学习 C++ 知识。这里分享给有需要的同学,如果写的有不妥的地方,还望指出。后续会利用学到的 C++ 知识对 FreeStreamer 这个音频播放器写一篇分析其实现原理的文章。本文主要围绕 FreeStreamer 这个库用到的 C++ 语法来讲解。iOS 开发当中,偶尔会使用到 C++ 的知识,然而大多数同学每遇...

2018-09-20 09:37:37 489

原创 iOS 妈妈再也不用担心我的数组越界了!!!

作为一名 iOS 开发者,最近由于开发音频播放器需要一些 C++ 的知识,便开始学习 C++ 知识。这里分享给有需要的同学,如果写的有不妥的地方,还望指出。本文主要围绕 FreeStreamer 这个库用到的 C++ 语法来讲解。iOS 开发当中,偶尔会使用到 C++ 的知识,然而大多数同学每遇到这个问题时,选择逃避。如果从头开始学习 C++ 语法,会花费很多时间,如同笔者一样,花费很多时间了解...

2018-09-18 17:34:03 523

原创 Xcode10 运行libstdc++报错处理方案

Xcode10 运行现有项目报错最多的应该就是如图:这个错误原因是因为iOS12.0中去掉了lstdc++.6.0.9.tbd动态库,如下图搜索便知:#iOS12.0中全部采用libc++代替lstdc++的动态库(如下图),具体原因可以参考:http://www.cnblogs.com/wellbye/archive/2013/04/25/3039203.html因为beta版本X...

2018-09-18 11:04:46 7588

原创 Xcode10 编译原有项目问题及解决方案

Xcode10 编译竟然报infoplist的问题问题:Showing Recent Messages: -1: Multiple commands produce ‘/Users/gavin/Library/Developer/Xcode/DerivedData/talk-glxnnbklscdqzwgtdtyodcfzxvwb/Build/Products/Debug-iphoneos...

2018-09-18 10:17:34 2633

原创 iOS 合并两张图片(叠加两张图片 重合两张图片)

最近产品给了一个奇葩的需求,需要把一个活动海报和用户生成的二维码合成一张图片,分享出去,效果如下:创建一个 UIImageView (黑斜体是关键一行代码) UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 375, 667)]; imgView.image = [sel...

2018-09-11 17:53:41 8563

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

在开发过程中,iOS 中实现加载 web 页面主要有两种控件,UIWebView 和 WKWebview,两种控件对应具体的实现方法不同。WKWebView是苹果公司在iOS8系统推出的,这里我们主要概述WebKit中更新的WKWebView控件的新特性与使用方法。一、 WKWebView的代理方法1.WKNavigationDelegate该代理提供的方法,可以用来追踪加载过...

2018-09-11 14:54:24 4323

原创 iOS 教你如何使用代码块Block

概述代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量、作为参数、作为返回值,特殊地,Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开发中,常用于GCD、动画、排序及各类回调注: Block的声明与赋值只是保存了一段代码段,必须调用才能执行内部代码Block...

2018-09-10 16:25:05 1257

原创 iOS 教你如何使用iconfont图标

1.什么是iconfonticonFont拆开来看,就是 Icon + Font,这样估计大家应该都能理解是什么,那两者结合是什么呢?没错!就是 IconFont !让开发者像使用字体一样使用图标。如果自己不会做的话,可以直接去阿里的iconfont图标库下载自己需要的图标。2.为什么要使用iconfont在开发项目时,不可避免的会用到各种图标,为了适配不同的设备,通常需要@2x和...

2018-09-08 17:12:02 689

转载 iOS Crash崩溃异常教你查看和分析

要学会看crash崩溃和报告一个应用程序并不总会一直运行的很好,它总会有出现crash崩溃的情况。如果在应用程序中接入了一些第三方的crash收集工具或者自建crash收集报告平台的话将会很好的帮助开发者去分析和解决应用程序在线上运行的问题,当出现的崩溃问题能得到及时的解决和快速的修复时必将会大大的提升应用程序的用户体验。当前比较流行的crash收集分析工具很多都是基于开源的KSCrash...

2018-09-06 09:44:09 12375

转载 程序员生存图鉴:接私活、创业、自由职业,哪种才是理想工作?

前阵子有个叫「隐形贫困人口」的词很火,指的是那些看上去生活滋润,实际上并不富裕的人。而与之相反的恐怕就是「隐形富裕人口」了。在众多职业中,收入水平高于市场上大部分职业,却并不爱炫富的程序员无疑是「隐形富裕人口」的典型代表。但与此同时,程序员也是最容易在中年之前就开始焦虑的职业之一。「程序员吃的是青春饭」,「30 岁还没做到中层就会被企业淘汰」,「30 岁年薪还没 40w 就该考虑转行」……...

2018-09-05 17:11:14 749 1

原创 iOS WKWebView的使用

WKWebView是苹果在iOS 8之后推出的框架WebKit中的浏览器控件, 其加载速度比UIWebView快了许多, 但内存占用率却下降很多, 也解决了加载网页时的内存泄露问题。现在的项目大多数只需适配到iOS 8, 所以用WKWebView来替换项目中的UIWebView是很有必要的.WKWebView的使用主要涉及下面几个类: WKWebView WKWebViewC...

2018-09-05 16:56:45 384

原创 iOS 动态修改App图标(icon)

动态修改app的图标,就是在不重新安装app的情况下,可以修改当前的icon图标;在某些情况下,是有这个需求的;例如,可以更换主题的app中,一般都会有一套完整的主题包含相应的icon;还有就是一些节日主题的icon或者促销的icon,例如淘宝、京东等的节日icon。在iOS 10.3之后,苹果官方提供了相关的API来实现这个功能,主要是下面这几个方法:@interface UIAppli...

2018-09-04 08:55:12 854

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关注的人

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