![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS开发
文章平均质量分 81
spicyShrimp
https://github.com/spicyShrimp
78268731@qq.com
展开
-
Alamofire源码解读
AFNetworking的作者Matt Thompson 提出了一个新的类似AFNetworking的网络基础库,并且专门使用最新的Swift语言写的,名为 Alamofire.对于使用OC的开发者来说一定十分熟悉AFNetworking这个框架,因为现在我们的app只要是有关于网络访问的部分大部分都会通过这个框架来进行网络的访问。而Alamofire 是 S原创 2017-04-25 16:31:35 · 882 阅读 · 0 评论 -
UIButton更换图片或者文字闪动的解决
在我们做开发的时候,或多或少的会使用UIButton,且可能会较频繁的更换图片或者文字 简单的举几个例子, 1.在我们写登录或者注册等页面的时候,可能会需要些一个倒计时的按钮,不断的更新时间, 2.在某一个tableview或者collectionView中,某些cell中会有按钮控件 3.我们写某些支付界面,可能选择某一个金额的时候,对应下面的支付原创 2017-09-23 10:30:49 · 2144 阅读 · 0 评论 -
SnapKit的扩展--添加数组控制约束,和九宫格布局,等宽,等间距等布局方式
SnapKit是Swift中的一个很好用的手动控制约束的三方库 这里我就不介绍了 https://github.com/SnapKit/SnapKit 很多从OC转Swift的开发者,如果之前有使用Marsonry的话.其肯定会第一时间替换使用SnapKit是的SnapKit就是一个类似Marsonry的库, 但是原创 2017-09-23 14:20:50 · 6061 阅读 · 0 评论 -
使用CATransaction实现push pop控制器结束的回调
使用CATransaction实现push pop控制器结束的回调在我们的iOS开发中,我们或多或少的会出现某些特殊的跳转需求, A界面push到B界面,然后B再push到C界面,但是我pop的时候我希望返回的是A界面. 咋看起来确实很简单, 系统会有这样的方法popToViewController:animate: 我们可以指定到pop到A界面. 但是这样的简单就结束了吗? 并不是,原创 2017-07-24 17:32:08 · 2017 阅读 · 0 评论 -
unrecognized selector sent to class 问题解决
unrecognized selector sent to class 问题解决unrecognized selector sent to class Xcode9作为最新的iOS的开发工具,相信很多小伙伴们都已经安装了, 大家对于各种兼容和bug修改头都大了吧.本来,我还真的没有遇到过Xcode找不到文件或者方法的问题.之前有写过一个demo并上传到gitHub上面, 有朋友下载下来想要使用,原创 2017-09-25 15:15:36 · 6751 阅读 · 0 评论 -
系列:iOS开发-如何快速定位bug并解决
系列:iOS开发-快速定位bug并解决本来没有打算针对这个开文的,昨天工作忙完,闲来无事的时候,逛逛论坛,贴吧啥的,偶然间就发现了有人发bug帖. http://www.jianshu.com/p/b51ead39c55d上面说的神乎其神呢… 大家可以去看看.怀着好奇的态度,下载了源码 干净的很,任何代码都没有 只有sotryboard 拖拽了几个控件, 绑定了present和dismiss原创 2017-09-26 10:00:48 · 5139 阅读 · 1 评论 -
iOS11 导航栏按钮位置问题的解决------新
之前有写过iOS11导航栏按钮位置的一篇解决方案,当时的解决思路是针对navigationItem做调整,强制修改约束 具体细节可以跳转iOS11 导航栏按钮位置问题的解决 http://blog.csdn.net/spicyshrimp/article/details/77891717但是后期发现这个解决方案仍有许多问题 1.界面在push和pop之原创 2017-10-11 10:44:07 · 17378 阅读 · 10 评论 -
iOS11 导航栏按钮位置问题的解决
iOS11 导航栏按钮位置问题的解决此文是iOS11在beta的时候写的,当时主要是为了解决问题,并没有想太多的优化,后期发现其代码量比较大,且会出现一些问题,比如多个按钮的设置,比如约束的丢失等,现在换了新的思路去实现新的解决方案 iOS11 导航栏按钮位置问题的解决——新 http://blog.csdn.net/spicyShrimp/article/details/78201042虽然现原创 2017-09-08 11:34:09 · 46123 阅读 · 30 评论 -
自定义形状按钮的实现
其实这只是一个很小很小的知识点,却有很多人不会去考虑,所以就遇到了这样的情况偶然有一天,朋友给了我一套产品原型,他说叫我帮他写几个按钮,很简单的按钮,我当时感觉有坑,但是也没有想太多,想着本来这段时间有点闲,就帮下忙, 于是他发来原型图 哟,就是很简单的4+1个按钮蛮 先写4个正方形的九宫格式的按钮,再在中心加一个圆形按钮就好了呀. 于是接下来他又发来产品设计图 果然,原创 2017-11-30 09:29:07 · 2174 阅读 · 0 评论 -
Swift4-有妖气漫画精仿框架部分
Swift4-有妖气漫画精仿框架部分不织布局的Swift已经更新到4.0了,对于绝大多数的iOS开发可能还停留在OC的阶段,这个已经完全落后了,但是毕竟4.0刚刚出来,网上是有不少的案例分析,版本之间的对比,但是都是比较零散的东西,很少有一套完整的项目,不适合初学者来开发学习,并且网上都比较流行的响应式变成也就是借助RXSwift等响应式框架来构造项目,但是相对的来说,这个起步就比较高了,应为响应式原创 2017-12-01 14:11:09 · 5243 阅读 · 0 评论 -
Swift4-有妖气漫画精仿选用Snapkit布局界面
Swift4-有妖气漫画精仿选用Snapkit布局界面作为iOS开发,我们知道的会有很多布局界面的方式 比如Frame,比如xib,storyboard手动拉取约束,比如手写约束 这些在我们升级到iOS11之前都很少会有问题,乃至升级至iOS11也仍然实用 但是我们会发现由于新的手机iPhone X的出现,我们的适配需要考虑到顶部的齐刘海,我们的适配需要考虑到底部的滑动区. 为什么这么说?原创 2017-12-01 15:36:54 · 2639 阅读 · 0 评论 -
iOS BLE 分包发送
iOS BLE 分包发送单次发送的数据过大,蓝牙模块内部接收缓冲区只有20个字节BLE_SEND_MAX_LEN是蓝牙单次可处理最大字节长度//分包发送蓝牙数据-(void)sendMsgWithSubPackage:(NSData*)msgData Peripheral:(CBPeripheral*)peripheral ...原创 2018-03-05 14:33:59 · 2743 阅读 · 1 评论 -
iOS系列开发-UITableView性能优化
在我们的日常开发中,很多开发人员最常接触的就是UITableView或者UICollectionView来布局某些列表等界面. 这里我们就拿UITableView来作为说明内容 绝大部分的时候,一个UITableView的内容不会很多,cell的样式\高度也不会很多元化,其仅仅作为一个展示用的UITableView来说,很多时候其性能都是很不错的.原创 2017-09-04 10:00:59 · 1199 阅读 · 0 评论 -
UIButton实现区域外点击
今天项目开发中偶然需要这个功能,一个按钮区域大小外也要能够点击响应因为项目是很早就开发的就项目,所以没有必要因为这个小的需求来修改按钮的大小,重新制定约束,或者frame等等,因为可能会影响到其他控件的约束或者响应等, 那么如何能够实现这个功能呢?其实最简单的方法就是创建一个那么大的按钮,然后按钮的图片设置小一点的,让人看上去按钮就那么大,但是其实要比我们看到的要大.原创 2017-07-24 19:43:42 · 996 阅读 · 0 评论 -
系列:iOS开发-CocoaPods的安装和使用
系列:iOS开发-CocoaPods的安装和使用作为一个iOS开发,基本上开发一个比较完整的或者规模较大的项目,我们都会或多或少的引用一些第三方的框架.所以我们经常会访问如GitHub等开源社区,下载和使用一些第三方的框架. 亦或者,我们在开发某一个特殊需求,自定义一个比较复杂的控件的时候,想要借鉴前人的某些思路,下载下来源码发现都是不能运行的.需要安装CocoaPods才能够打开运行. 那么C原创 2017-05-08 16:13:24 · 706 阅读 · 0 评论 -
系列:iOS开发-framework的制作与使用
系列:iOS开发:制作动态或静态framework作为一个iOS开发人员,无论是出于工作需要,还是出于保密需要… 我们都有可能或多或少的想要将一部分源码封装成静态或者动态库,以达到保密或者版权的效果 比如公司想要整理框架作为知识产权等销售,比如你做一个兼职工作,客户想要项目源码,涉及隐私你想要保护起来,比如你想要分享给一个同时一项功能,但是不想给源码…网上关于Framework制作的教程数不胜数原创 2017-05-17 10:34:36 · 768 阅读 · 0 评论 -
简单制作一款MAC软件-显示/隐藏文件
手把手教你简单制作一款最简单的MAC软件-显示/隐藏文件作为一个使用mac电脑的开发者来说,我们都会知道,MAC系统对于保护隐私的关注,所以基本上普通人是无法打开隐藏文件的, 作为iOS开发者来说,我们对于隐藏文件的访问时必不可少的, 这个时候我们只有使用终端来输入命令 对于显示和隐藏文件的命令本身不是特别复杂defaults write com.apple.finder AppleShowA原创 2017-05-12 11:12:05 · 662 阅读 · 0 评论 -
避免因为respondsToSelector:, performSelector:上线被拒
记得前段时间iOS开发者很多都收到了使用JSPatch被拒的邮件, Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App原创 2017-05-11 17:25:17 · 3856 阅读 · 0 评论 -
Swift防止按钮重复点击实现+Swift如何运用Runtime
做过OC开发的都知道,我们想要给一个系统的类添加一个属性我们有几种方法,比如继承,我们创建一个父类,给父类写一个属性,之后所有使用的类都采用继承该父类的方式,这样就会都拥有该属性.更高级一点的我们会用到OC的Runtime的机制, 给分类添加属性,即使用 Runtime 中的 objc_setAssociatedObject 和 objc_getAssociated原创 2017-05-11 10:15:25 · 3735 阅读 · 0 评论 -
iOS开发禁用多个按钮同时点击导致误触
在开发iOS项目的时候很多开发者都不会考虑这样的一个问题,包括我也不会——一个界面内有多个按钮或者touch时间同时进行会怎么样?单从字面上看可能不容易理解,举个比较容易理解的例子. 在某个应用的首页上,有两个按钮,我们单独的点击每一个按钮都会触发一次点击事件,这个本身没有任何毛病,类似于点击第一个按钮跳转到第一个子界面,点击第二个按钮跳转到第二个子界面.但是原创 2017-05-10 11:14:30 · 3316 阅读 · 0 评论 -
Swift单例模式
单例模式单例模式的作用是解决“应用中只有一个实例”的一类问题。在Cocoa Touch框架中,有UIApplication、NSUserDefaults和NSNotificationCenter等单例类。另外,NSFileManager和NSBundle类虽然属于Cocoa框架的内容,但也可以在Cocoa Touch框架中使用(Cocoa框架中的单例类有NSFileManager、原创 2017-04-28 11:29:10 · 998 阅读 · 0 评论 -
iOS简单优雅的实现复杂情况下的串行需求(各种锁、GCD 、NSOperationQueue...)
昨天一个同事问我一个问题,我在开发中有很多异步操作,回调都需要时间,且时间都不确定,例如一个网络请求,就是这样的形式,异步发起请求,等待回调,等到获取结果之后进行下一步的操作. 我说,没有任何问题啊.本来耗时操作等就是这么写的啊… 然后他说,我现在有一个新的需求,例如网络请求1结束后请求2等到2回来之原创 2017-04-27 10:57:02 · 2084 阅读 · 0 评论 -
Swift 获取联系人信息
Swift 获取联系人信息如今很多开发者都开始尝试使用Swift进行开发,而且获取手机通讯录作为开发常见的需求 作为一个新的开发者,如果我们开发的应用需求不是特别高,只要求是iOS9以上, 那么恭喜你,基本上你写的很少, 你可以选择Contacts框架,这个框架是在iOS9才出来的@available(iOS 9.0, *) 直接上代码 首先在需要的类中import Contacts然后就原创 2017-04-25 15:14:56 · 2096 阅读 · 0 评论 -
系列:iOS开发-单例模式
在我们做开发的时候经常会遇到需要在很多地方调用同一个对象的现象, 比如在一个类中,我们可能会用到全局变量,在一个方法中会重复用到某个局部变量…今天要说的单例模式就是一个类似这样的存在单例模式的作用 :可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源.单例模式的使用场合:在整个应用程序中,共享一份资源(这份资原创 2017-04-19 13:46:57 · 557 阅读 · 2 评论 -
iOS10跳转系统设置、WIFI、蓝牙...
iOS自我们熟悉以来,就一直与Android有着不一样的体验, 系统更加流畅,使用更加舒适, 同时较高与Android的价格也导致了它的特殊性, iOS系统的封闭和很多权限的限制导致了我们在开发的时候经常会遇到很多无法条件无法实现 就比如iOS10以前,我们开发的应用想要跳转到系统设置,跳转到蓝牙,跳转到WIFI… iOS开发工程师们都很熟悉,系统给原创 2017-04-10 14:04:26 · 14162 阅读 · 8 评论 -
使用脚本一键打包iOS应用ipa和上传到ftp服务器
由于开发时间的经常,测试的繁琐,无可避免的会频繁的打包ipa并上传到公司的服务器. 一次两次我们获取能够接受.但是要是赶上高峰期,一天下来打包几十次,有谁能受的了呢? 于是想到了脚本打包和上传ftp,github上搜索一下,还有不少,果断选择一个star最多的试试 https://github.com/webfrogs/xcode_shell原创 2017-05-26 10:59:39 · 1876 阅读 · 0 评论 -
iOS获取当前显示VC
iOS获取当前显示VC- (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel != UIWindowLevel...原创 2018-08-31 12:31:53 · 2041 阅读 · 0 评论