iOS
文章平均质量分 65
W_C__L
简单不先与复杂,而是在复杂之后~~
展开
-
iOS中消息的传递机制
本文中,会经常提及接收者[recipient]和发送者[sender]。在消息传递机制中具体是什么意思,我们可以通过一个示例来解释:一个table view是发送者,而它的delegate就是接收者。Core Data managed object注1:本文由破船[博客]译自Communication Patterns。 本文目录如下所示:可用的机制转载 2015-11-16 23:41:38 · 638 阅读 · 0 评论 -
iOS开发小结 - UIView的坐标转换
在开发过程中,我们经常为了计算UIView的坐标而烦恼,其实UIView有一套专门关于坐标转换的扩展,下面我们看看有哪些方法关于UIView的左边转换一共有一下四个方法,分别是:public func convertPoint(point: CGPoint, toView view: UIView?) -> CGPointpublic func convertPoint(point: CGPo原创 2016-08-04 23:54:56 · 2571 阅读 · 2 评论 -
iOS开发进阶 - 隐藏UINavigationBar的小技巧
如果移动端访问不佳,可以访问我的个人博客 在开发过程中,为让屏幕显示更多的内容,有时候设计师会让我们隐藏UINavigationBar,通过浏览大神们写的文章和工作上用到的,总结了一下隐藏UINavigationBar的三种效果,用swift写了一份,供学习使用~~~demo地址第一种让UINavigationBar透明渐变消失思路是写一个扩展,先给UINavigationBar的backGr原创 2016-07-28 23:54:37 · 5137 阅读 · 2 评论 -
iOS开发小结 - AFNetworking的Post失败,关于requestSerializer的正确使用
最近接手一个项目,因为之前的项目里面POST请求用的是ASI的,我就想着给替换成AFNetworking,但是在替换过程中遇到了一个大坑,解决了半天才发现是一个小问题,下面将我的问题给大家分享一下:错误描述和发现过程Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and原创 2016-08-18 17:23:18 · 11091 阅读 · 2 评论 -
iOS开发小结 - 通过PUT请求上传数据
一般服务器上传数据一般都是用POST请求,这样通过AFNetworking的POST请求稳稳的,但是有一天遇到一个问题,服务器上传数据用的是PUT请求,发现用AFNetworking并不是那么好用,今天就来讲一下如何通过PUT请求上传数据。原创 2016-05-17 23:39:41 · 10771 阅读 · 0 评论 -
iOS开发小结 - AppStore App申请审核加速
众所周知AppStore的审核周期非常长,一般会达到一周时间,然后当AppStore上应用版本上有重大bug时,一周的时间才能上传新的版本对于公司来说损失会非常大,不过AppStore给我们提供了一个加速审核的通道来解决这个问题 界面如下: 除了上面的截图,中间需要填写app的一些信息。 加速是否能申请成功,关键是看你填写最后部分的描述 比如你是紧急修复严重bug:那你要解释这个b原创 2016-04-27 23:03:54 · 980 阅读 · 0 评论 -
swift学习笔记 - Unicode转码
现在用swift写了一个新项目,发现String和NSString还是有很大不同的,在Unicode转码上遇到了问题,我写了一个扩展,把以前OC的转码用swift重写了一遍,发现也能用,下面把我用swift做Unicode转码的代码贴在这里,亲测好用~~extension String { var unicodeStr:String { let tempStr1 = sel原创 2016-07-21 22:29:47 · 6250 阅读 · 0 评论 -
iOS开发进阶 - 常用的Xcode插件
Alcatraz - 插件管理工具Alcatraz是一个开源的Xcode插件管理器,可以让你更便捷地发现、安装以及管理插件、模板和配色方案。只需要简单地点击或者勾选,就能下载安装和删除插件,建议选择的第一个Xcode插件。 下载完成后通过Window—>Package Manager来打开。 XcodeColors - 控制台着色的工具控制台着色的工具XcodeColors,使用了XcodeCo原创 2016-03-25 23:39:40 · 2692 阅读 · 1 评论 -
iOS开发小结 - 播放系统提示音使用总结(AudioToolbox)
开发过程中需要用到苹果自带的系统提示音,下面我总结了一下关于系统提示音播放的方法第一步首先得导入AudioToolbox框架#import <AudioToolbox/AudioToolbox.h>播放系统自带的提示声播放系统自带的提示声很简单,只需要两行代码就能搞定了://定义一个SystemSoundID SystemSoundID soundID = 1000;//具体参数详情下面贴原创 2016-08-23 00:10:09 · 8993 阅读 · 2 评论 -
iOS日常学习 - App之间常用的五种通信方式及适用场景总结
iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不能随意跨越自己的沙盒去访问别的App沙盒中的内容。1、URL Scheme这个是iOS app通信最常用到的通信方式,App1通过openURL的方法跳转到App2,并且在URL中带上想要的参数,有点转载 2016-09-06 17:15:36 · 2664 阅读 · 0 评论 -
Swift学习笔记 - 位移枚举的按位或运算
在OC里面我们经常遇到一些枚举值可以多选的,需要用或运算来把这些枚举值链接起来,这样的我们称为位移枚举,但是在swift里面却不能这么做,下面来讲解一下如何在swift里面使用OC的位移枚举的区分//位移枚举typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone原创 2016-08-30 15:16:46 · 7982 阅读 · 7 评论 -
iOS动画进阶 - 手摸手教你写 Slack 的 Loading 动画
如果移动端访问不佳,可以访问我的个人博客 前几天看了一篇关于动画的博客叫手摸手教你写 Slack 的 Loading 动画,看着挺炫,但是是安卓版的,寻思的着仿造着写一篇iOS版的,下面是我写这个动画的分解~老规矩先上图和demo地址:刚看到这个动画的时候,脑海里出现了两个方案,一种是通过drawRect画出来,然后配合CADisplayLink不停的绘制线的样式;第二种是通过CAShapeL原创 2016-09-08 18:19:01 · 6722 阅读 · 7 评论 -
iOS动画进阶 - 实现类似美颜相机的相机启动动画
最近在写一个相册的demo,偶尔看到了美拍的相机过载动画觉得很有意思,就想在我的相册demo中加入一个这种特效,下面把我的想法和实现过程给大家分享一下先上效果图:(demo地址)步骤分析这个动效看起来很有特色但是实现起来是非常简单的,只需要用到CALayer和CAShapeLayer做为展示层,然后通过CABasicAnimation实现动画就行了~用两个CALayer来呈现启动的image通原创 2016-08-16 15:58:46 · 3650 阅读 · 0 评论 -
GCD深入学习之GCD的初识
如果移动端访问不佳,可以访问我的个人博客 现在网上关于GCD的介绍已经很多了,在项目中也经常用到,但是没怎么深入研究过,打算写一系列关于GCD使用,参考其他大神写的博客和Apple的技术文档总结一下,一是自己深入学习一下,二是以后忘了可以回过头来温习一下~什么是GCD?GCD全名是Grand Central Dispatch(大中央调度器),是系统级的,存在于libdispatch.dylib原创 2016-06-30 11:01:50 · 7059 阅读 · 0 评论 -
iOS动画进阶 - CAKeyframeAnimation实现过山车动画
偶然间在网页上看到一个过山车动画觉得很炫,就想用swift纯代码实现了一个类似的效果,因为没有设计天赋,所以就完全高仿的人家的效果-.-下面上效果图:给大家介绍一下项目中主要会用到的类:CAShapeLayerCAGradientLayerCAKeyframeAnimation实现的主要思路渐变的背景用CAGradientLayer实现,其他例如山峰,草坪和轨道可以用CAShapeLaye原创 2016-06-22 22:34:59 · 7144 阅读 · 0 评论 -
iOS开发进阶 - 实现类似微信和支付宝的密码输入框(UIKeyInput协议)
如果移动端访问不佳,请访问我的个人博客目前在项目中需要实现发红包的功能,自己就写了一个密码输入框的控件,主要用到了UIKeyInput协议和CoreGraphics框架,效果类似微信支付,感觉还行就把我的思路和制作过程写下来给大家分享一下。(demo地址觉得有用的可以star一下)让你的自定义View具备输入的功能(UIKeyInput协议)通过UIKeyInput协议可以为响应者提供简单的键盘输原创 2016-06-02 14:10:26 · 12063 阅读 · 4 评论 -
iOS开发进阶 - 用AVFoundation自定义视频录制功能
系统自带的录制视频的功能显然无法项目的要求,自定义视频录制就非常重要了,那么下面来带大家制作属于自己的视频录制界面。主要使用AVFoundation和CoreMedia框架..原创 2016-05-25 14:13:18 · 30300 阅读 · 71 评论 -
iOS开发小结 - 创建属于自己的Xcode文件模板
关于文件模板大多数人想必都不陌生,我们在开发过程中经常用到,不过一般都是系统定义好的模板,比如创建自定义类的时候,创建一个VC的时候都用到了,下面描述一下改如何创建属于自己的Xcode文件模板什么是Xcode模板 上图用到的就是Xcode自带的文件模板,有一系列系统为你建立好的条件模板。如何创建自己的文件模板首先先到/Applications/Xcode.app/Contents/Develop原创 2016-07-31 23:19:44 · 4508 阅读 · 0 评论 -
iOS开发小结 - 如何控制App内屏幕是否常亮(也就是App是否进入休眠状态)
有一次在接受别人的代码的时候发现app始终屏幕始终步熄灭,经过查找跟UIApplication对象的idleTimerDisabled属性有关,下面详细介绍一下这个属性,也给自己留个印象。idleTimerDisabled查看官方文档,对于这个属性是这样描述的:var idleTimerDisabled: Bool是一个布尔值,用来控制这个App在空闲的时候是否禁用这个属性的默认值是false原创 2016-08-03 23:50:42 · 12146 阅读 · 0 评论 -
This version does not support documents saved in the Xcode 8 format. Open this document with Xcode 8
刚发布完Xcode的8.0果断更新了,发现用起来非常容易闪退,关键是我编辑项目时默认使用Xcode8打开,导致我用Xcode7打开Xib是报错:This version does not support documents saved in the Xcode 8 format. Open this document with Xcode 8.0 or later.这下我就蒙B了,这不坑爹么,导致用原创 2016-06-17 12:41:21 · 13807 阅读 · 15 评论 -
在xcode5中修改整个项目名
总会遇到几个项目,在做到一半的时候被要求改项目名,网上找了下相关的资料,大多数是xcode5以前的版本,所以解决好了在这里mark一下,给需要的人。目标为:将项目名XCD4改成xcd5。先上结果图:==》 1.在左侧的导航区域点击两次项目名,两次间隔时间稍微长些,项目名会变成可编辑状态。将名称修改为xcd5后按enter键弹出转载 2015-12-15 11:59:28 · 563 阅读 · 0 评论 -
如何查找应用中哪个文件使用到了IDFA
如何查找应用中哪个文件使用到了IDFAIDFA(Advertising Identifier):可以理解为广告id,apple公司提供的用于追踪用户的广告标识符,现在被大部分社交SDK用来做为应用的唯一标识来跟踪用户活动。查找工程内使用IDFA的文件: - 首先打开终端 - cd到工程目录 - 输入 grep -r advertisingIdentifier .原创 2016-01-19 11:03:25 · 1089 阅读 · 0 评论 -
UIImagePickerController显示中文界面
UIImagePickerController显示中文界面Project–>Info–>Localizations添加Chinese2.修改Target–>Info–>Localization native development region : China转载 2016-01-19 15:01:44 · 735 阅读 · 0 评论 -
shareSDK新浪和微信分享错误code=204
新浪分享报错code=10014,shareSDK报错code=204原因:那是因为新浪微博没有申请高级读写权限,不能用网络连接的图片,只能用本地图片。解决办法:在新浪微博开放平台申请高级读写权限。分享的时候分享图片原文件。微信分享时分享不成功,不跳转原因:微信分享比较坑,微信分享web格式时,图片大小不能大于32kb,要不会分享失败,然而在文档上并没有描述。解决办法:分享时将图片尽量压缩,小原创 2016-01-19 15:12:32 · 10486 阅读 · 0 评论 -
使用Core Animation对象来实现动画
在Core Animation中我们经常使用的是:CABasicAnimationCAKeyframeAnimationCATransitionAnimation其中CABasicAnimation和CAKeyframeAnimation是对图层中的不同属性进行动画的。如果要多整个图层进行动画,则应该使用CATransitionAnimation如果要使用组合动画,例如要改变图层的大小和透明原创 2016-03-01 22:10:47 · 841 阅读 · 0 评论 -
github SSH秘钥配置
github SSH秘钥配置从github上clone代码下来,或者关联你的远程仓库有两种链接,一种是Https的链接,一种是ssh的链接,今天要讲的是用ssh链时出现的一些问题和解决办法。原创 2015-12-14 17:28:20 · 795 阅读 · 0 评论 -
block使用小结、在arc中使用block、如何防止循环引用、weak–strong dance
Block简介Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理 要么导致return cycle内存泄漏要么内存被提前释放导致crash。 Block的使用很像函数指针,不过与函数最大的不同是:Bloc转载 2016-02-24 11:40:04 · 1341 阅读 · 0 评论 -
提交到AppStore时失败,提交审核时提示:UIRequiredDeviceCapabilities
UIRequiredDeviceCapabilities的作用当提交程序到app store时,3.0及更高版本的应用程序不再直接说明使用哪种设备,而是使用info.plist文件来确定需要哪些设备功能。iTunes通过这个所需功能的列表来确定一个应用程序能否下载到一个指定的设备并在该设备上正常运行。在info.plist里面是用一个叫Required device capabilities的数组来原创 2016-02-24 12:18:27 · 8407 阅读 · 0 评论 -
ERROR ITMS-90046: "Invalid Code Signing Entitlements. 苹果提交App Store的问题
ERROR ITMS-90046: Specifically, value '*' for key 'com.apple.developer.associated-domains' in 'Payload/Feather.app/Feather' is not supported."的问题的解决方案原创 2016-03-20 21:24:00 · 9170 阅读 · 0 评论 -
编程思想的理解(POP,OOP,SOA,AOP)
POP–面向过程编程(Process-oriented programming ) 面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成。面向过程强调的是功能(加工),数据仅仅作为输入和输出存在。这种过程化的思想是一种很朴素和普遍的思想和方法,人类很多活动都是原创 2016-03-21 21:39:42 · 1098 阅读 · 0 评论 -
Xcode升级导致插件无法使用和点击skip bundle后怎么重新加载插件
Xcode升级导致插件无法使用和点击skip bundle后怎么重新加载插件原创 2016-03-23 23:03:16 · 1698 阅读 · 0 评论 -
自定义viewController切换动画
实现效果系统自带的viewControll切换动画有push动画和模态动画,一般在正常情况下已经够用了,但并满足不了一些复杂的切换效果,比如下图一些效果原创 2015-12-17 22:45:16 · 747 阅读 · 0 评论 -
用xib设置圆角,边框和UITextField的私有属性placeholderColor
用xib设置圆角和边框一般在工程里面需要设置圆角的地方很多,比如头像,一些小按钮等等,我们必须把需要设置圆角的控件拖成属性,然后通过设置控件的 layer.cornerRadius 属性来达到设置圆角的效果,边框也是一样,需要通过设置控件的 layer.borderWidth 和 layer.borderColor 来配置,这样子比较麻烦,应为大部分控件是不需要脱成属性的,在这里我向大家提供一个用x原创 2016-04-28 23:25:36 · 5931 阅读 · 2 评论 -
UDP、TCP、socket区别
首先说一下他们直接的联系,UDP和TCP就像声明的一个协议,是需要传送的东西也就是内容,而scoket就像是一个通道,用于传送这些内容,也就是用socket来实现。UDP:UDP是一种面向无连接的用户数据报服务(user data protocol),不需要和服务器也能交互,只需要知道ip和监听端口,不需要链接没有目的的socket,只是将数据报投递出去,不管接收方是否成功接收到,因此是一种不可靠的原创 2016-04-29 22:41:23 · 1050 阅读 · 0 评论 -
iOS开发小结 - UINavigationBar设置shadowImage
在项目中我们经常用到UINavigationBar,有时候我们需要设置UINavigationBar设置shadowImage,把下面的小黑条给弄掉,或者换一个颜色的阴影条,UINavigationBar有一个属性是shadowImage,然而发现设置了并没有用,下面描述一下怎么正确使用shadowImage属性。我们先设置一下shadowImage为蓝色的图片,下面是代码:let size =原创 2016-07-11 23:35:49 · 10758 阅读 · 0 评论 -
iOS开发进阶 - CAEmitterLayer,粒子发射系统
CAEmitterLayer是ios5中苹果引入了一个新的CALayer子类。CAEmitterLayer是一个高性能的粒子引擎,可以用来做一些绚丽的粒子系统,比如爆炸,雪花火焰等等。基于CAEmitterLayer做的点赞效果图(demo的github下载地址(大家喜欢可以点个star)): CAEmitterCellCAEmitterCell: CAEmitterCell是粒子发射系统里的粒子原创 2016-04-27 00:45:45 · 5803 阅读 · 1 评论