- 博客(50)
- 收藏
- 关注
原创 iOS11 导航栏按钮位置问题的解决------新
之前有写过iOS11导航栏按钮位置的一篇解决方案,当时的解决思路是针对navigationItem做调整,强制修改约束 具体细节可以跳转iOS11 导航栏按钮位置问题的解决 http://blog.csdn.net/spicyshrimp/article/details/77891717但是后期发现这个解决方案仍有许多问题 1.界面在push和pop之
2017-10-11 10:44:07 17439 10
原创 iOS获取当前显示VC
iOS获取当前显示VC- (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel != UIWindowLevel...
2018-08-31 12:31:53 2098
原创 React Native 实现瀑布流列表页,分组+组内横向的列表页.....
React Native 实现瀑布流列表页,分组+组内横向的列表页…..随着React Native的更新,因为其跨平台的优越性,越来越多的公司和项目采用其作为其快速开发和迭代的基础语言.但是其并不是任何控件其都已经涵盖了,就拿我们常见的列表页来说, 一般通用的纵向或者横向列表我们可以使用RN里面的FlatList,需要分组的时候我们可以使用SectionList,但是当我们又想要分组又想要...
2018-06-07 15:05:25 8126 3
原创 React Native搭建简单的项目框架React Navigation + redux
React Native搭建简单的项目框架React Native 是Facebook于2015年4月开源的跨平台移动应用开发框架, 短短的一两年的发展就已经有很多家公司支持并采用此框架来搭建公司的移动端的应用, React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。虽然可能没有说的那么厉害,但是我们不可否认,它在统一...
2018-05-14 17:32:03 2469 1
原创 iOS BLE 分包发送
iOS BLE 分包发送单次发送的数据过大,蓝牙模块内部接收缓冲区只有20个字节BLE_SEND_MAX_LEN是蓝牙单次可处理最大字节长度//分包发送蓝牙数据-(void)sendMsgWithSubPackage:(NSData*)msgData Peripheral:(CBPeripheral*)peripheral ...
2018-03-05 14:33:59 2814 1
原创 JS中常遇到的浏览器兼容问题和解决方法
JS中常遇到的浏览器兼容问题和解决方法 var winW=document.body.clientWidth||document.docuemntElement.clientWidth;//网页可见区域宽 var winH=document.body.clientHeight||document.docuemntElement.clientHeight;//网页可见区域宽
2018-01-16 09:19:54 560
原创 Swift4-有妖气漫画精仿选用Snapkit布局界面
Swift4-有妖气漫画精仿选用Snapkit布局界面作为iOS开发,我们知道的会有很多布局界面的方式 比如Frame,比如xib,storyboard手动拉取约束,比如手写约束 这些在我们升级到iOS11之前都很少会有问题,乃至升级至iOS11也仍然实用 但是我们会发现由于新的手机iPhone X的出现,我们的适配需要考虑到顶部的齐刘海,我们的适配需要考虑到底部的滑动区. 为什么这么说?
2017-12-01 15:36:54 2676
原创 Swift4-有妖气漫画精仿框架部分
Swift4-有妖气漫画精仿框架部分不织布局的Swift已经更新到4.0了,对于绝大多数的iOS开发可能还停留在OC的阶段,这个已经完全落后了,但是毕竟4.0刚刚出来,网上是有不少的案例分析,版本之间的对比,但是都是比较零散的东西,很少有一套完整的项目,不适合初学者来开发学习,并且网上都比较流行的响应式变成也就是借助RXSwift等响应式框架来构造项目,但是相对的来说,这个起步就比较高了,应为响应式
2017-12-01 14:11:09 5291
原创 自定义形状按钮的实现
其实这只是一个很小很小的知识点,却有很多人不会去考虑,所以就遇到了这样的情况偶然有一天,朋友给了我一套产品原型,他说叫我帮他写几个按钮,很简单的按钮,我当时感觉有坑,但是也没有想太多,想着本来这段时间有点闲,就帮下忙, 于是他发来原型图 哟,就是很简单的4+1个按钮蛮 先写4个正方形的九宫格式的按钮,再在中心加一个圆形按钮就好了呀. 于是接下来他又发来产品设计图 果然,
2017-11-30 09:29:07 2279
原创 系列:iOS开发-如何快速定位bug并解决
系列:iOS开发-快速定位bug并解决本来没有打算针对这个开文的,昨天工作忙完,闲来无事的时候,逛逛论坛,贴吧啥的,偶然间就发现了有人发bug帖. http://www.jianshu.com/p/b51ead39c55d上面说的神乎其神呢… 大家可以去看看.怀着好奇的态度,下载了源码 干净的很,任何代码都没有 只有sotryboard 拖拽了几个控件, 绑定了present和dismiss
2017-09-26 10:00:48 5202 1
原创 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 6798
原创 SnapKit的扩展--添加数组控制约束,和九宫格布局,等宽,等间距等布局方式
SnapKit是Swift中的一个很好用的手动控制约束的三方库 这里我就不介绍了 https://github.com/SnapKit/SnapKit 很多从OC转Swift的开发者,如果之前有使用Marsonry的话.其肯定会第一时间替换使用SnapKit是的SnapKit就是一个类似Marsonry的库, 但是
2017-09-23 14:20:50 6152
原创 UIButton更换图片或者文字闪动的解决
在我们做开发的时候,或多或少的会使用UIButton,且可能会较频繁的更换图片或者文字 简单的举几个例子, 1.在我们写登录或者注册等页面的时候,可能会需要些一个倒计时的按钮,不断的更新时间, 2.在某一个tableview或者collectionView中,某些cell中会有按钮控件 3.我们写某些支付界面,可能选择某一个金额的时候,对应下面的支付
2017-09-23 10:30:49 2200
原创 iOS11 导航栏按钮位置问题的解决
iOS11 导航栏按钮位置问题的解决此文是iOS11在beta的时候写的,当时主要是为了解决问题,并没有想太多的优化,后期发现其代码量比较大,且会出现一些问题,比如多个按钮的设置,比如约束的丢失等,现在换了新的思路去实现新的解决方案 iOS11 导航栏按钮位置问题的解决——新 http://blog.csdn.net/spicyShrimp/article/details/78201042虽然现
2017-09-08 11:34:09 46254 30
原创 iOS系列开发-UITableView性能优化
在我们的日常开发中,很多开发人员最常接触的就是UITableView或者UICollectionView来布局某些列表等界面. 这里我们就拿UITableView来作为说明内容 绝大部分的时候,一个UITableView的内容不会很多,cell的样式\高度也不会很多元化,其仅仅作为一个展示用的UITableView来说,很多时候其性能都是很不错的.
2017-09-04 10:00:59 1246
原创 UIButton实现区域外点击
今天项目开发中偶然需要这个功能,一个按钮区域大小外也要能够点击响应因为项目是很早就开发的就项目,所以没有必要因为这个小的需求来修改按钮的大小,重新制定约束,或者frame等等,因为可能会影响到其他控件的约束或者响应等, 那么如何能够实现这个功能呢?其实最简单的方法就是创建一个那么大的按钮,然后按钮的图片设置小一点的,让人看上去按钮就那么大,但是其实要比我们看到的要大.
2017-07-24 19:43:42 1029
原创 使用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 2076
原创 iOS系列开发-版本控制工具Git的使用
作为一个开发者,与团队之间默契的配合是很重要的,我们所写的代码在无论是在公司还是在个人来说都是一份不可随意丢弃的东西,但是如果只是单纯的开发,我们很难做到今天能够知道上周写完后的项目代码,我们往往需要备份一份,比如我们今天开发出1.0版本的应用,为了留档,我们可能会保存一份完整代码在服务器,之后再拷贝一份继续新的开发,但是这样只能留存部分我们关注的版本,且一份
2017-06-22 14:09:12 1682
原创 系列:iOS开发-从扩展UIButton到自定义控件
系列:iOS开发-从扩展UIButton到自定义控件我们在做iOS开发的时候,往往要制作一些跟系统控件不一样的自定义控件, 比如我们会定义一个图片在上面,文字在下面的按钮, 比如我们会定义一个复杂的控件,有点击,有长按,有拖拽等手势…往往我们就会想到使用系统已经有的控件来做二次封装 当然自己封装控件就会有很多的方式, 比如实现的效果大致的是一个按钮,那么我们就会采用继承UIButton的方式,
2017-06-21 18:09:42 2188
原创 使用脚本一键打包iOS应用ipa和上传到ftp服务器
由于开发时间的经常,测试的繁琐,无可避免的会频繁的打包ipa并上传到公司的服务器. 一次两次我们获取能够接受.但是要是赶上高峰期,一天下来打包几十次,有谁能受的了呢? 于是想到了脚本打包和上传ftp,github上搜索一下,还有不少,果断选择一个star最多的试试 https://github.com/webfrogs/xcode_shell
2017-05-26 10:59:39 1904
原创 系列:iOS开发-Masonry的使用
对于一个开发者来说,我们是肯定需要和布局打交道的,最早的我们可能会使用手写frame或者bounce等,在之后我们可能会方便的使用xib或者storyboard来拉约束等. 我们会发现使用约束,autolayout是很方便的方法,但是仅限于在xib或者storyboard中拉出来的约束,如果我们是手写的话,你会发现实在过于的繁琐和啰嗦.于是就出现了Masonr
2017-05-25 10:26:45 1835
原创 系列:iOS开发-framework的制作与使用
系列:iOS开发:制作动态或静态framework作为一个iOS开发人员,无论是出于工作需要,还是出于保密需要… 我们都有可能或多或少的想要将一部分源码封装成静态或者动态库,以达到保密或者版权的效果 比如公司想要整理框架作为知识产权等销售,比如你做一个兼职工作,客户想要项目源码,涉及隐私你想要保护起来,比如你想要分享给一个同时一项功能,但是不想给源码…网上关于Framework制作的教程数不胜数
2017-05-17 10:34:36 802
原创 简单制作一款MAC软件-显示/隐藏文件
手把手教你简单制作一款最简单的MAC软件-显示/隐藏文件作为一个使用mac电脑的开发者来说,我们都会知道,MAC系统对于保护隐私的关注,所以基本上普通人是无法打开隐藏文件的, 作为iOS开发者来说,我们对于隐藏文件的访问时必不可少的, 这个时候我们只有使用终端来输入命令 对于显示和隐藏文件的命令本身不是特别复杂defaults write com.apple.finder AppleShowA
2017-05-12 11:12:05 687
原创 避免因为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 3889
原创 Swift防止按钮重复点击实现+Swift如何运用Runtime
做过OC开发的都知道,我们想要给一个系统的类添加一个属性我们有几种方法,比如继承,我们创建一个父类,给父类写一个属性,之后所有使用的类都采用继承该父类的方式,这样就会都拥有该属性.更高级一点的我们会用到OC的Runtime的机制, 给分类添加属性,即使用 Runtime 中的 objc_setAssociatedObject 和 objc_getAssociated
2017-05-11 10:15:25 3785
原创 iOS开发禁用多个按钮同时点击导致误触
在开发iOS项目的时候很多开发者都不会考虑这样的一个问题,包括我也不会——一个界面内有多个按钮或者touch时间同时进行会怎么样?单从字面上看可能不容易理解,举个比较容易理解的例子. 在某个应用的首页上,有两个按钮,我们单独的点击每一个按钮都会触发一次点击事件,这个本身没有任何毛病,类似于点击第一个按钮跳转到第一个子界面,点击第二个按钮跳转到第二个子界面.但是
2017-05-10 11:14:30 3364
原创 系列:iOS开发-strong 、weak、copy 、assign 、retain
无论是在iOS开发刚学习的时候,还是在日常的开发中,我们都需要创建的对象,对应的我们就会有设置对象的类型的必要. 这个并不是说设置了就完事了,为什么我们要用strong 、weak、copy 、assign 、retain等这些不同的修饰词类定义对象呢? 说白了就是为了内存管理. 内存管理是我们做开发的所必须要
2017-05-09 13:18:58 697
原创 系列:iOS开发-CocoaPods的安装和使用
系列:iOS开发-CocoaPods的安装和使用作为一个iOS开发,基本上开发一个比较完整的或者规模较大的项目,我们都会或多或少的引用一些第三方的框架.所以我们经常会访问如GitHub等开源社区,下载和使用一些第三方的框架. 亦或者,我们在开发某一个特殊需求,自定义一个比较复杂的控件的时候,想要借鉴前人的某些思路,下载下来源码发现都是不能运行的.需要安装CocoaPods才能够打开运行. 那么C
2017-05-08 16:13:24 743
原创 系列:iOS开发-框架搭建
一个完整的项目,那么就会有很多的界面或者内容,作为一个开发者,完成一个项目的能力需要靠经验积累,同时,如何从一个项目需求中分离出功能模块,搭建项目的基础框架也是必须要熟练的. 每一个项目的需求是不同的, 比如大家熟悉的微信, 从下面的选择可以看到大致的分成4个功能模块,微信-通讯录-发现-我 当然每一个模块中还有小的功能模块,比如我的模块中 我们又能看
2017-05-03 14:41:13 736
原创 系列:iOS开发-应用生命周期
每一个作为一个独立的移动端的应用,都有他自己的存在和释放的阶段, 当我们点击手机桌面上的一个图标的时候,我们的应用就会被加载,通过一些列的初始化等过程,最终呈现在我们的视野中,当然,我们也有可能会做到多个应用循环或者不定的切换,在使用应用中来电话或者…应用不想使用的时候我们想要去划掉它…这些如果作为一个使用者,那么它其实是不需要关注多少这方面的东西,但是作为一个开发者
2017-05-02 09:51:55 574
原创 Swift单例模式
单例模式单例模式的作用是解决“应用中只有一个实例”的一类问题。在Cocoa Touch框架中,有UIApplication、NSUserDefaults和NSNotificationCenter等单例类。另外,NSFileManager和NSBundle类虽然属于Cocoa框架的内容,但也可以在Cocoa Touch框架中使用(Cocoa框架中的单例类有NSFileManager、
2017-04-28 11:29:10 1043
原创 系列:iOS开发-VC生命周期
作为一个开发人员,我们写应用的时候,说白了无非就是写一个个界面,通过各个界面的创建,切换,销毁等,产生应用所谓的交互,当然有的数据是全局的,跟界面的存在无关,例如你在播放的一首歌,这首歌无论你是否在某个界面,它都会持续的播放下去,想想怎么写?是的这个播放器写成单例… 当然,有的数据就是依赖于界面而存在,比如某些歌单列表,当我们写一个列表页,并展示的时候我就会去请求列表
2017-04-28 10:10:57 2773
原创 iOS简单优雅的实现复杂情况下的串行需求(各种锁、GCD 、NSOperationQueue...)
昨天一个同事问我一个问题,我在开发中有很多异步操作,回调都需要时间,且时间都不确定,例如一个网络请求,就是这样的形式,异步发起请求,等待回调,等到获取结果之后进行下一步的操作. 我说,没有任何问题啊.本来耗时操作等就是这么写的啊… 然后他说,我现在有一个新的需求,例如网络请求1结束后请求2等到2回来之
2017-04-27 10:57:02 2115
原创 系列:iOS开发-网络请求
我们的目标是开发应用,那么或多或少的我们就会有网络请求的需求,比如我们在开发的时候有用户登录,比如我们写一个音乐软件,我们要获取音乐列表,获取音乐来播放,再复杂点的,我们可能会写一个聊天类的软件,需要即时获取聊天消息…所以,网络请求对于开发来说肯定是必不可少的. 那么什么是网络请求? 简单的来说,我们在浏览器输入一串类似于http://www.baidu.com 我们就
2017-04-27 09:42:11 729
原创 Alamofire源码解读
AFNetworking的作者Matt Thompson 提出了一个新的类似AFNetworking的网络基础库,并且专门使用最新的Swift语言写的,名为 Alamofire.对于使用OC的开发者来说一定十分熟悉AFNetworking这个框架,因为现在我们的app只要是有关于网络访问的部分大部分都会通过这个框架来进行网络的访问。而Alamofire 是 S
2017-04-25 16:31:35 922
原创 Swift 获取联系人信息
Swift 获取联系人信息如今很多开发者都开始尝试使用Swift进行开发,而且获取手机通讯录作为开发常见的需求 作为一个新的开发者,如果我们开发的应用需求不是特别高,只要求是iOS9以上, 那么恭喜你,基本上你写的很少, 你可以选择Contacts框架,这个框架是在iOS9才出来的@available(iOS 9.0, *) 直接上代码 首先在需要的类中import Contacts然后就
2017-04-25 15:14:56 2155
原创 系列:iOS开发-单例模式
在我们做开发的时候经常会遇到需要在很多地方调用同一个对象的现象, 比如在一个类中,我们可能会用到全局变量,在一个方法中会重复用到某个局部变量…今天要说的单例模式就是一个类似这样的存在单例模式的作用 :可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源.单例模式的使用场合:在整个应用程序中,共享一份资源(这份资
2017-04-19 13:46:57 597 2
原创 系列:iOS开发-UITableView
系列:iOS开发-UITableView连续工作好几天,终于再次空闲下来了,今天开始,我们再继续说说iOS开发中最常用的控件,也是稍微有点复杂的控件,UITableView, 简单的说他就是一个表格控件, 我们在以前使用OFFICE中的EXCEL时进程会看到,多行多列的一个表格,这个时候我们把需要的数据分别填进相应的地方,做出一个比较好的布局. 这样的好处是方便直观,并且可以做出相应的比较或者
2017-04-11 16:22:55 613
原创 系列:iOS开发-协议和代理
既然说到了协议和代理,那么就有必要解释下意思. 协议: 协议是一个方法签名的列表,在这个列表中可以定义若干个方法而根据配置,那些遵守这个协议的类就会去实现这个协议中规定的若干个方法. 那什么又是代理呢?举一个简单的例子. 隔壁老王最近新开了一家便利店,因为是新开张的,所以老王自己承担了所有的工作,其中包括,进货、上架、收银… 这样我们大致可以写出来一个类, 我
2017-04-11 14:08:50 961
原创 iOS10跳转系统设置、WIFI、蓝牙...
iOS自我们熟悉以来,就一直与Android有着不一样的体验, 系统更加流畅,使用更加舒适, 同时较高与Android的价格也导致了它的特殊性, iOS系统的封闭和很多权限的限制导致了我们在开发的时候经常会遇到很多无法条件无法实现 就比如iOS10以前,我们开发的应用想要跳转到系统设置,跳转到蓝牙,跳转到WIFI… iOS开发工程师们都很熟悉,系统给
2017-04-10 14:04:26 14297 8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人