[置顶] swift脚本编程:一键生成AppIcon

事前准备 查看swift版本 swift脚本编程小知识 终端输入和输出 输出 输入 在swift脚本中调用其他脚本 开始编写脚本 读取inputpng 生成AppIconappiconset和Contentsjson 生成不同尺寸的image 自从Xcode8之后就不支持插件了,没法用Xcode一键生成AppIcon,一直没找到好的解决方案,一怒之下决定自己写一个脚本用来生成AppIcon,下面是...
阅读(579) 评论(0)

[置顶] 丁香园iOS电话面试问题总结

简单讲解一下http请求以及GET POST的区别 https的加密方式和几次握手 https的加密方式 加密的详细过程 在不知道二进制文件格式的情况下如何区分文件 常见的几种线程锁 怎么保证线程安全 SDWebImage具体实现和具体类 Alamofire实现原理和主要的类 RxSwift的原理使用和主要类 realm的简单介绍和使用时的线程问题 跨线程时的使用 简单讲一讲RunTime和RunL...
阅读(55925) 评论(5)

[置顶] iOS动画进阶 - 实现炫酷的上拉刷新动效(二)

最近撸了一个上拉刷新的小轮子,只要遵循一个协议就能自定义自己动效的上拉刷新和加载,我自己也写了几个动效进去,下面是一个比较好的动效的实现过程 先上效果图和github地址,完整代码个demo和进入查看,有其他好的动效大家也可以学习交流~分析动效写一个动效的第一步就应该仔细的去分析它,把它的每一帧展开来看,找一个最合适的方式来实现它,我们可以把以上动画分解成以下三个步骤: 箭头的绘制和动效 圆环的绘制...
阅读(3208) 评论(5)

[置顶] iOS动画进阶 - 实现炫酷的上拉刷新动效

移动端访问不佳,请访问我的个人博客 最近撸了一个上拉刷新的小轮子,只要遵循一个协议就能自定义自己动效的上拉刷新和加载,我自己也写了几个动效进去,下面是一个比较好的动效的实现过程 先上效果图和github地址,有其他好的动效大家也可以交流~动效的原地址,在uimovement网站上看到这个动效时感觉特别6,就想自己实现一下,费了很长时间,换了几种方案终于实现出来了,下面是实现的步骤:分析动效写一个...
阅读(4412) 评论(0)

[置顶] swift设计模式学习 - 外观模式

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

[置顶] swift设计模式学习 - 模板方法模式

移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 模板方法模式模板方法模式,定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式的基本实现上图是基本模板模式的UML图,这种设计模式在很多地方都有用到,下面是基本实现的代码:class AbstractClass { func...
阅读(1371) 评论(0)

[置顶] swift设计模式学习 - 代理模式

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

[置顶] swift设计模式学习 - 原型模式

移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 原型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给...
阅读(1769) 评论(0)

[置顶] swift设计模式学习 - 策略模式

策略模式策略模式定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式的组成 抽象策略角色(Strategy): 策略类,通常由一个接口或者抽象类实现。 具体策略角色(ConcreteStrategy):包装了相关的算法和行为。 环境角色(Context):持有一个策略类的引用,最终给客户端调用。 策略模式的基本实现上图是最基本的装饰模式的结构图...
阅读(1989) 评论(0)

[置顶] iOS动画进阶 - 手摸手教你写ShineButton动画

前段时间在github上看见一个非常nice的动画效果,可惜是安卓的,想着用swift写一个iOS版的,下下来源代码研究了一下,下面是我写代码的心路历程 先上图和demo的地址分析动画过程刚开始看的时候感觉这个动画很炫酷,实现起来应该挺复制的,后来我将gif图逐一分解,大致浏览了一下安卓的实现过程,大致了解的实现的过程,下面是一些关键的动画步骤: 第一步是里面图片的缩放动画,使用CALayer配合C...
阅读(4670) 评论(8)

[置顶] swift设计模式学习 - 装饰模式

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

[置顶] iOS开发进阶 - 基于PhotoKit的图片选择器

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

[置顶] swift学习笔记 - Range、ClosedRange、CountableClosedRange与CountableRange学习

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

[置顶] iOS开发进阶 - 自定义UICollectionViewLayout实现瀑布流布局

最近项目中需要用到瀑布流的效果,但是用UICollectionViewFlowLayout又达不到效果,自己动手写了一个瀑布流的layout,下面是我的心路路程 先先上效果图与demo地址:因为是用UICollectionView来实现瀑布流的,决定继承UICollectionViewLayout来自定义一个layout来实现一个简单瀑布流的布局,下面是需要重写的方法: 重写这个属性得出UIColl...
阅读(5125) 评论(0)

[置顶] iOS开发进阶 - 富文本正则替换表情

移动端访问不佳,请访问我的个人博客 最近写项目需要用到富文本解析字符串显示表情,下面是我使用正则替换实现富文本的方式,希望能帮助到大家 先上效果图和demo地址实现过程中需要用到的知识点 NSRegularExpression(正则表达式) NSMutableAttributedString(用来显示富文本的string) 废话不多说,直接贴代码:import UIKitstruct WCLEm...
阅读(1581) 评论(0)

[置顶] iOS开发进阶 - 项目的本地化处理(多语言开发)

最近项目本地化,需要支持11国语言,下面将本地化的步骤记录下来,方便查找使用,步骤很简单,有些地方也有坑,希望大家看后少走弯路~~ 什么是本地化本地化说直白点就是多语言开发,通过系统语言来判断应用使用的哪种语言,实现应用的本地化开发本地化处理需要处理的文件 本地化应用程序的info.plist 本地化字符串处理(项目中所涉及的字符串) 本地化图片 XIB和storyboard的本地化处理 其他文件,...
阅读(1417) 评论(0)

[置顶] Shell学习小结 - 深入认识变量

变量的命名对于初学者来说,可以简单的理解为,变量就是保存在计算机内存中的一系列的键值对。列如:str="hello"这里的str就是变量名,而hello就是变量的值 注意在shell中变量名的大小是敏感的,因此大小写不同的两个变量名并不代表同一个变量 变量的类型根据变量的类型确实,可以将程序设计语言分为两类,分别是静态类型语言和动态类型语言 静态类型语言: 是在编译期间就确定变量类型的语言,例如...
阅读(831) 评论(0)

[置顶] iOS开发进阶 - 使用Carthage管理iOS第三方库

最近在研究Swift,一不小心发现一个好的的管理iOS第三方库Carthage,就跟第一次使用CocoaPods时一样兴奋不已,在研究了大半天后终于能用了,使用起来还是很方便的,比起CocoaPods有不足也有优点,两个配合起来用也是很爽的^ - ^ 初识Carthage最近在用Swift3.0做项目,想导入一些支持Swift3.0的第三方库来使用,就想到Alamofire,看README时发现了一...
阅读(2764) 评论(0)

[置顶] iOS基于XMPP实现即时通讯之一、环境的搭建

移动端访问不佳,请访问我的个人博客 使用XMPP已经有一段时间了,但是一直都没深入研究过,只是使用SDK做一些简单的操作,看了许多大神的博客,自己总结一下,准备写一系列关于XMPP的使用博客,以便于自己更加深入学习~ IM协议及服务器选型http://liudanking.me/arch/xmpp%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%89%E5%9E%8B/ 协议...
阅读(4029) 评论(3)

[置顶] iOS动画进阶 - 手摸手教你写 Slack 的 Loading 动画

如果移动端访问不佳,可以访问我的个人博客 前几天看了一篇关于动画的博客叫手摸手教你写 Slack 的 Loading 动画,看着挺炫,但是是安卓版的,寻思的着仿造着写一篇iOS版的,下面是我写这个动画的分解~ 老规矩先上图和demo地址:刚看到这个动画的时候,脑海里出现了两个方案,一种是通过drawRect画出来,然后配合CADisplayLink不停的绘制线的样式;第二种是通过CAShapeL...
阅读(5197) 评论(7)

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

CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。XcodeColors是用于控制台着色的工具,配合着CocoaLumberjack用有更好的效果,不废话,先上图: 从上图上看控制台的日志输出不仅仅只有默认的黑色了,而是根据日志等级的不同带有不同的颜色,这样即让我们的编程变的步那么无聊,又让我们能更加清晰的对日志等级做出区分,下面来详细介绍一下应该如何应用...
阅读(2259) 评论(0)

[置顶] iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上

如果移动端访问不佳,可以访问我的个人博客 用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir.im,以及打包过程中遇到的问题和解决办法 相关资料和下载首先是打包脚本的下载地址,这个是我找到的比较全的一个,里面有很多不同功能的shell脚本,亲测好用,传送门还有关于fir指令的一些介绍可以去这...
阅读(6483) 评论(10)

[置顶] iOS动画进阶 - 实现类似美颜相机的相机启动动画

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

[置顶] GCD深入学习之GCD的初识

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

[置顶] iOS动画进阶 - CAKeyframeAnimation实现过山车动画

偶然间在网页上看到一个过山车动画觉得很炫,就想用swift纯代码实现了一个类似的效果,因为没有设计天赋,所以就完全高仿的人家的效果-.-下面上效果图: 给大家介绍一下项目中主要会用到的类: CAShapeLayer CAGradientLayer CAKeyframeAnimation 实现的主要思路渐变的背景用CAGradientLayer实现,其他例如山峰,草坪和轨道可以用CAShapeLaye...
阅读(4963) 评论(0)

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

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

[置顶] iOS开发进阶 - 用AVFoundation自定义视频录制功能

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

[置顶] iOS开发进阶 - CAEmitterLayer,粒子发射系统

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

[置顶] iOS开发进阶 - 常用的Xcode插件

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

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

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

reason: image not found的解决方案

在制作framework时遇到真机运行时导致的reason: image not found允许崩溃的问题,下面是我的解决方案: 首先我们分析一下出现这种情况的原因,原因就是framework找不到镜像了,也就是在真机运行是没有找到对应的framework包,在网上找的一些办法将框架引用从Required 变为Optional ,根本就是治标不治本,等到运行到这个framework的代码是也会崩溃,...
阅读(1971) 评论(0)
76条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:307573次
    • 积分:3270
    • 等级:
    • 排名:第11433名
    • 原创:68篇
    • 转载:8篇
    • 译文:0篇
    • 评论:167条
    GitHub
    博客专栏
    最新评论