自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 swift脚本编程:一键生成AppIcon

事前准备 查看swift版本 swift脚本编程小知识 终端输入和输出 输出 输入 在swift脚本中调用其他脚本 开始编写脚本 读取inputpng 生成AppIconappiconset和Contentsjson 生成不同尺寸的image 自从Xcode8之后就不支持插件了,没法用Xcode...

2017-10-17 00:06:36 1917 1

原创 丁香园iOS电话面试问题总结

简单讲解一下http请求以及GET POST的区别 https的加密方式和几次握手 https的加密方式 加密的详细过程 在不知道二进制文件格式的情况下如何区分文件 常见的几种线程锁 怎么保证线程安全 SDWebImage具体实现和具体类 Alamofire实现原理和主要的类 RxSwift的原理...

2017-06-21 01:35:24 228914 5

原创 iOS动画进阶 - 实现炫酷的上拉刷新动效(二)

最近撸了一个上拉刷新的小轮子,只要遵循一个协议就能自定义自己动效的上拉刷新和加载,我自己也写了几个动效进去,下面是一个比较好的动效的实现过程 先上效果图和github地址,完整代码个demo和进入查看,有其他好的动效大家也可以学习交流~分析动效写一个动效的第一步就应该仔细的去分析它,把它的每一帧展...

2017-04-27 20:41:17 4217 5

原创 iOS动画进阶 - 实现炫酷的上拉刷新动效

移动端访问不佳,请访问我的个人博客 最近撸了一个上拉刷新的小轮子,只要遵循一个协议就能自定义自己动效的上拉刷新和加载,我自己也写了几个动效进去,下面是一个比较好的动效的实现过程 先上效果图和github地址,有其他好的动效大家也可以交流~动效的原地址,在uimovement网站上看到这个动效时...

2017-03-17 15:04:34 6659 1

原创 swift设计模式学习 - 外观模式

移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 外观模式外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的基本实现上图是外观模式的UML图,下面是基本的代码实现过程://MARK:...

2017-03-09 12:05:25 1951 0

原创 swift设计模式学习 - 模板方法模式

移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 模板方法模式模板方法模式,定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式的基本实现上图是基本模板模式的UML图,这种设计模...

2017-02-24 13:59:34 1823 0

原创 swift设计模式学习 - 代理模式

移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 代理模式代理模式为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的组成 抽象角色:通过接口或抽象类...

2017-02-21 23:47:22 1615 2

原创 swift设计模式学习 - 原型模式

移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 原型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype原型模式是一种创建型设计模式,Prototype模式允...

2017-02-20 19:56:55 2225 0

原创 swift设计模式学习 - 策略模式

策略模式策略模式定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式的组成 抽象策略角色(Strategy): 策略类,通常由一个接口或者抽象类实现。 具体策略角色(ConcreteStrategy):包装了相关的算法和行为。 环境角色(Co...

2017-02-18 22:03:58 2565 0

原创 iOS动画进阶 - 手摸手教你写ShineButton动画

前段时间在github上看见一个非常nice的动画效果,可惜是安卓的,想着用swift写一个iOS版的,下下来源代码研究了一下,下面是我写代码的心路历程 先上图和demo的地址分析动画过程刚开始看的时候感觉这个动画很炫酷,实现起来应该挺复制的,后来我将gif图逐一分解,大致浏览了一下安卓的实现过程...

2017-02-16 00:32:35 7036 10

原创 swift设计模式学习 - 装饰模式

移动端访问不佳,请访问我的个人博客装饰模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。 装饰对象包含一个真实对象的引用(...

2017-02-09 17:46:04 1910 1

原创 iOS开发进阶 - 基于PhotoKit的图片选择器

移动端访问不佳,请访问我的个人博客 很早之前就用OC把代码写完了并用在项目中了,一直没时间整理,现在用swift重写一份,并且更加详细的来了解这个Photos框架,下面是我集合苹果官方文档和其他大神的博客写出的一篇关于Photos框架的介绍 老规矩先上效果图和Demo地址:了解Photos框架...

2017-01-11 15:21:34 4975 2

原创 swift学习笔记 - Range、ClosedRange、CountableClosedRange与CountableRange学习

在使用swift的过程中字符串操作的时候会用到Range,刚开始使用起来各种别扭,然后发现居然还有ClosedRange、CountableClosedRange和CountableRange,这下就彻底头疼了,下面简单的描述一下它们的区别 从命名来代码来理解和区分 CountableClosed...

2017-01-05 22:21:12 3113 0

原创 iOS开发进阶 - 自定义UICollectionViewLayout实现瀑布流布局

最近项目中需要用到瀑布流的效果,但是用UICollectionViewFlowLayout又达不到效果,自己动手写了一个瀑布流的layout,下面是我的心路路程 先先上效果图与demo地址:因为是用UICollectionView来实现瀑布流的,决定继承UICollectionViewLayout...

2016-12-21 22:57:50 6365 1

原创 iOS开发进阶 - 富文本正则替换表情

移动端访问不佳,请访问我的个人博客 最近写项目需要用到富文本解析字符串显示表情,下面是我使用正则替换实现富文本的方式,希望能帮助到大家 先上效果图和demo地址实现过程中需要用到的知识点 NSRegularExpression(正则表达式) NSMutableAttributedString(...

2016-11-28 17:20:11 2896 0

原创 iOS开发进阶 - 项目的本地化处理(多语言开发)

最近项目本地化,需要支持11国语言,下面将本地化的步骤记录下来,方便查找使用,步骤很简单,有些地方也有坑,希望大家看后少走弯路~~ 什么是本地化本地化说直白点就是多语言开发,通过系统语言来判断应用使用的哪种语言,实现应用的本地化开发本地化处理需要处理的文件 本地化应用程序的info.plist 本...

2016-11-21 13:33:15 2113 0

原创 Shell学习小结 - 深入认识变量

变量的命名对于初学者来说,可以简单的理解为,变量就是保存在计算机内存中的一系列的键值对。列如:str="hello"这里的str就是变量名,而hello就是变量的值 注意在shell中变量名的大小是敏感的,因此大小写不同的两个变量名并不代表同一个变量 变量的类型根据变量的类...

2016-10-23 23:00:48 1054 0

原创 iOS开发进阶 - 使用Carthage管理iOS第三方库

最近在研究Swift,一不小心发现一个好的的管理iOS第三方库Carthage,就跟第一次使用CocoaPods时一样兴奋不已,在研究了大半天后终于能用了,使用起来还是很方便的,比起CocoaPods有不足也有优点,两个配合起来用也是很爽的^ - ^ 初识Carthage最近在用Swift3.0做...

2016-09-20 22:54:53 3734 0

原创 iOS基于XMPP实现即时通讯之一、环境的搭建

移动端访问不佳,请访问我的个人博客 使用XMPP已经有一段时间了,但是一直都没深入研究过,只是使用SDK做一些简单的操作,看了许多大神的博客,自己总结一下,准备写一系列关于XMPP的使用博客,以便于自己更加深入学习~ IM协议及服务器选型http://liudanking.me/arch/xm...

2016-09-16 19:57:17 5791 3

原创 iOS动画进阶 - 手摸手教你写 Slack 的 Loading 动画

如果移动端访问不佳,可以访问我的个人博客 前几天看了一篇关于动画的博客叫手摸手教你写 Slack 的 Loading 动画,看着挺炫,但是是安卓版的,寻思的着仿造着写一篇iOS版的,下面是我写这个动画的分解~ 老规矩先上图和demo地址:刚看到这个动画的时候,脑海里出现了两个方案,一种是通过d...

2016-09-08 18:19:01 6101 7

原创 iOS开发进阶 - 日志输出框架CocoaLumberjack与XcodeColors插件的简单使用(swift版)

CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。XcodeColors是用于控制台着色的工具,配合着CocoaLumberjack用有更好的效果,不废话,先上图: 从上图上看控制台的日志输出不仅仅只有默认的黑色了,而是根据日志等级的不同带有不同的颜色,...

2016-09-01 22:46:16 2979 0

原创 iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上

如果移动端访问不佳,可以访问我的个人博客 用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir.im,以及打包过程中遇到的问题和解决办法 相关资料和下载首先是打包脚本的下载地址,这个是我找到...

2016-08-24 12:03:01 10205 10

原创 iOS动画进阶 - 实现类似美颜相机的相机启动动画

最近在写一个相册的demo,偶尔看到了美拍的相机过载动画觉得很有意思,就想在我的相册demo中加入一个这种特效,下面把我的想法和实现过程给大家分享一下 先上效果图:(demo地址)步骤分析这个动效看起来很有特色但是实现起来是非常简单的,只需要用到CALayer和CAShapeLayer做为展示层,...

2016-08-16 15:58:46 3292 0

原创 GCD深入学习之GCD的初识

如果移动端访问不佳,可以访问我的个人博客 现在网上关于GCD的介绍已经很多了,在项目中也经常用到,但是没怎么深入研究过,打算写一系列关于GCD使用,参考其他大神写的博客和Apple的技术文档总结一下,一是自己深入学习一下,二是以后忘了可以回过头来温习一下~ 什么是GCD?GCD全名是Grand...

2016-06-30 11:01:50 5854 0

原创 iOS动画进阶 - CAKeyframeAnimation实现过山车动画

偶然间在网页上看到一个过山车动画觉得很炫,就想用swift纯代码实现了一个类似的效果,因为没有设计天赋,所以就完全高仿的人家的效果-.-下面上效果图: 给大家介绍一下项目中主要会用到的类: CAShapeLayer CAGradientLayer CAKeyframeAnimation 实现的主要...

2016-06-22 22:34:59 6424 0

原创 iOS开发进阶 - 实现类似微信和支付宝的密码输入框(UIKeyInput协议)

如果移动端访问不佳,请访问我的个人博客 目前在项目中需要实现发红包的功能,自己就写了一个密码输入框的控件,主要用到了UIKeyInput协议和CoreGraphics框架,效果类似微信支付,感觉还行就把我的思路和制作过程写下来给大家分享一下。(demo地址觉得有用的可以star一下)让你的自定义V...

2016-06-02 14:10:26 11078 4

原创 iOS开发进阶 - 用AVFoundation自定义视频录制功能

系统自带的录制视频的功能显然无法项目的要求,自定义视频录制就非常重要了,那么下面来带大家制作属于自己的视频录制界面。主要使用AVFoundation和CoreMedia框架..

2016-05-25 14:13:18 26451 69

原创 iOS开发进阶 - CAEmitterLayer,粒子发射系统

CAEmitterLayer是ios5中苹果引入了一个新的CALayer子类。CAEmitterLayer是一个高性能的粒子引擎,可以用来做一些绚丽的粒子系统,比如爆炸,雪花火焰等等。 基于CAEmitterLayer做的点赞效果图(demo的github下载地址(大家喜欢可以点个star)): ...

2016-04-27 00:45:45 5301 1

原创 iOS开发进阶 - 常用的Xcode插件

Alcatraz - 插件管理工具Alcatraz是一个开源的Xcode插件管理器,可以让你更便捷地发现、安装以及管理插件、模板和配色方案。只需要简单地点击或者勾选,就能下载安装和删除插件,建议选择的第一个Xcode插件。 下载完成后通过Window—>Package Manager来打开...

2016-03-25 23:39:40 2306 1

原创 手把手教你发布自己的开源框架到CocoaPods

移动端显示不佳,请访问我的个人博客 偶尔会发布自己的开源框架到CocoaPods上,但是每次都忘记命令行,写这篇博客的目的是为了记录下来步骤,方便以后翻阅使用 一、先将代码传到github上这步比较简单,大致说一下:// 创建本地仓库 git init // 添加名称为origin的远程连接 ...

2017-03-17 00:21:47 1886 2

原创 reason: image not found的解决方案

在制作framework时遇到真机运行时导致的reason: image not found允许崩溃的问题,下面是我的解决方案: 首先我们分析一下出现这种情况的原因,原因就是framework找不到镜像了,也就是在真机运行是没有找到对应的framework包,在网上找的一些办法将框架引用从Requ...

2017-02-16 14:39:38 21391 3

原创 swift学习笔记 - 判断当前运行的系统和平台

最近代码需要判断代码运行的系统与平台,下面总结了一下swift下一些可以用来判断的属性: // 代码运行在32位的 Windows public var TARGET_OS_MAC: Int32 { get } // 代码运行在 Mac OS X public var TARGET_OS_WIN3...

2016-12-27 23:11:27 4000 0

原创 swift学习笔记 - swift3.0用GCD实现计时器

swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法: 先贴代码:// 定义需要计时的时间 var timeCount = 60 // 在global线程里创建一个时间源 let codeTimer = DispatchSour...

2016-12-26 11:01:56 9074 0

原创 fatal: refusing to merge unrelated histories的解决方案

最近更新了git版本,发现在github上建立了一个仓库,然后关联本地库的时候pull失败,错误为fatal: refusing to merge unrelated histories,查找后发现解决方案为下: 解决方案:# 将之前的git pull origin master修改为一下代码 g...

2016-12-09 15:52:14 2918 0

转载 iOS日常学习 - 如何配置.gitignore文件

文章为转载学习,原文地址 为什么要配置.gitigore在我们使用git的过程当中,不是任何文件都需要commit到本地或者远程仓库的,比如一些三方库文件。 那么作为一个git新手,很多人不知道如何配置.gitignore文件,本文只是提供一个便捷的例子。你可以直接使用本文提供的代码编辑到你的....

2016-11-21 15:29:38 1977 1

原创 Xcode8编辑代码崩溃解决办法

更新了Xcode8带来了一系列问题,最大的困扰就是不支持插件了,而且最关键的是一敲代码就崩溃(就是写一个字母就开始崩),在网上找了很多解决,发现是之前装的插件遗留下来的问题,将插件全部删掉就解决了,下面是删除插件的办法:打开终端输入:defaults delete com.apple.dt.Xco...

2016-11-18 13:53:19 1948 0

原创 Swift学习笔记 - URL编码encode与解码decode

使用swift有一段时间了,api的变换造成了很多困扰,下面是关于url编码和解码问题的解决方案 在Swift中URL编码encode在Swift中URL编码用到的是String的方法func addingPercentEncoding(withAllowedCharacters allowedC...

2016-11-05 12:20:43 16286 7

原创 Swift学习笔记 - Swift属性只读

在OC中我们经常用到只读属性,用readonly修饰一下就行了,但在Swift中已经不是这样修饰的了,下面记录一下Swift中只读属性的使用 在OC中的只读://只读属性 @property(readonly, nonatomic) NSObject *wcl;在Swift中的只读://只读属性 ...

2016-10-30 19:51:47 4081 0

转载 iOS日常学习 - 每个Xcode开发者应该知道的七个使用技巧

本文为转载学习使用原文链接 工欲善其事,必先利其器。对一个iOS开发者来说,这就意味着对Xcode的熟练掌握程度。Xcode是一个学习起来有点难度的软件,下面的这些技巧或许可以显著的提高你的编程效率。 1.快速打开快速打开(Open Quickly)命令在Xcode的File菜单中,当然,用快...

2016-10-16 12:29:26 762 0

原创 Swift学习笔记 - OC中关于NSClassFromString获取不到Swift类的解决方案

在OC和Swift混编的过程中发现在OC中通过NSClassFromString获取不到Swift中的类,调研了一下发现问题所在,下面是我的解决方案: 问题的发现过程UIViewController *destinationVC = [[NSClassFromString(demoInfoMode...

2016-10-15 21:35:15 3242 0

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