
iOS开发
文章平均质量分 72
乞力马扎罗的雪CYF
一只不孤独的猿。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
公司用到的一些 iOS 开源库和第三方组件
分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有更多的时间和精力能更加专注的做好自己的产品欢迎大家关注我的 GitHub或微博了解更多关于我的信息 ^_^用到的组件1、通过CocoaPods安装项目名称项目信息AFNetworki转载 2015-09-22 23:47:34 · 2033 阅读 · 0 评论 -
iOS初始化UIView
UiView是iOS中很多控件的父类,能够绘制出很多的图形,具体如何来初始化呢?#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //视图; UIV原创 2015-09-25 10:19:59 · 2714 阅读 · 0 评论 -
iOS项目开发实战——使用代码获取屏幕宽高
在项目开发中,目前iPhone有如下的几种屏幕宽高(单位点)和屏幕模式之间的关系:(1)iPhone 3GS : 320点*480点 ;1*;分辨率:320*480; @1x;(2)iPhone 4/iPhone 4s :320点*480点 ;2*; 分辨率:640*960; @2x;(3)iPhone 5/iPhone5s: 320点*568点 ;2*;原创 2015-09-25 10:49:26 · 2776 阅读 · 0 评论 -
iOS项目开发实战——UIView的层级关系
iOS项目开发中,View其实是有层级关系的,这种层级关系可以理解为等级。简单的描述就是:后加入的View等级较高,会把先加入的View盖住。如果父视图等级较低,那么它的子视图等级也较低。具体代码实现如下:#import "ViewController.h"@interface ViewController ()@end@implementation ViewController原创 2015-09-25 15:50:23 · 2985 阅读 · 0 评论 -
iOS项目开发实战——UIImageView的使用与图片显示模式
现在我们使用iOS的Image控件来显示一张图片,并设置图片的显示模式,代码如下:#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //注意这是加载图片原创 2015-09-25 22:03:11 · 4982 阅读 · 0 评论 -
iOS实现简单备忘录程序——TaskList
在实际生活中,由于事情太多太杂,我们往往会忘记一些事情。该应用就是基于这样的用户痛点而开发的任务列表。类似iOS自带的备忘录程序。你可以随时记录一些信息,并可以实时的进行保存。在程序重新打开时会显示你保存的所有信息。该Demo我已经上传 https://github.com/chenyufeng1991/iOS-TaskList 。 该应用主要实现的技术就是iOS控件UIT原创 2015-11-10 19:04:20 · 3800 阅读 · 2 评论 -
iOS项目开发实战——开发基于Handoff的App(Swift)
iOS8推出一个新特性,叫做Handoff。Handoff中文含义为换手(把接力棒传给下一个人),可以在一台Mac和iOS设备上开始工作,中途将工作交换到另一个Mac或iOS设备中进行。这个在iOS8和Yosemite得到支持,当然在iOS9和EI Captain中也有这个功能。 Handoff中使用了一个“活动”的概念,它可以在多台设备间传递用户的“活动”。当用户从一台设备切换到另一原创 2015-11-10 22:07:18 · 4934 阅读 · 6 评论 -
iOS-CoreLocation实现定位当前城市
我们可能常常使用CoreLocation来实现很复杂的功能,包括地图显示、定位等等。但是在实际的项目开发中,我们可能有这样的需求,只要获取当前所在城市的名称即可,然后使用这个城市名称来开发其他的功能实现,并不需要地图等太复杂的功能。这个Demo可以直接作为一个单独的模块加入到你的项目中,非常方便。我已经上传至 https://github.com/chenyufeng1991/LocationCi原创 2015-11-10 20:13:03 · 4297 阅读 · 3 评论 -
iOS定义常量的最佳实践
我之前写过一篇博客《iOS项目中全局变量的定义与使用》,讲的是怎么在iOS项目中定义全局变量。而全局变量和常量是项目中最常用到的两种类型的变量。对于有代码洁癖的程序猿来说,一般是不允许在编码中直接出现数字、字符串的。这篇博客我们来谈谈在iOS中声明常量。并从最一般的声明方法,最后推到最佳实践。【实践1】:直接在类中声明const常量- (void)viewDidLoad { [supe原创 2015-10-23 22:25:03 · 3097 阅读 · 1 评论 -
iOS用代码实现导航栏NavigationBar与跳转(Objective-C)
当我们在使用storyboard来进行界面设计的时候,如果想要设置导航栏或者标签页(TabBar)是非常方便的。但是可能由于特殊原因,我们需要通过代码来实现导航栏,并且在导航栏的基础上进行界面跳转,我们应该怎么实现呢?AppDelegate.h中实现:#import @class ViewController;@interface AppDelegate : UIResponder原创 2015-10-28 22:13:06 · 5896 阅读 · 0 评论 -
CoreLocation无法定位问题解决方案
最近在使用CoreLocation方面的开发,需要获取一些定位信息,但是总是遇到各种问题。我下面来罗列一下这些问题,并总结一下各种解决方案。。。。问题的根源大概是网络请求问题。毕竟苹果的服务是国外的。下面我来提出一些解决方案。【方案1】在iOS9之后iOS的网络请求都使用了https,所以需要在plist文件中加入如下两个字段。NSAppTran原创 2015-10-29 11:11:22 · 2929 阅读 · 0 评论 -
iOS界面跳转与返回代码实现(Objective-C)
我们知道,现在的界面设计与跳转都可以使用storyboard和segue来实现。但是有些项目组或者boss不喜欢这样简单可视化的形式,非要用代码来实现整个UI的设计,与界面跳转的逻辑,当然原因有各种。所以,现在我来为大家来简单实现如何使用代码来构建UI控件并进行跳转。代码我会上传Github。 该项目的第一个界面就是storyboard自动创建的界面,第二个界面是自己创建的带nib原创 2015-10-28 19:40:54 · 11183 阅读 · 1 评论 -
Cocoapods管理SDWebImage库问题汇总与解决方案
今天需要使用第三方库SDWebImage来进行网络图片的加载,所以选择了Cocoapods来进行包管理,但是中途遇到不少问题。下面我将把问题罗列出来,并进行解决。【问题1】在Podfile文件中内容如下:platform :iospod 'SDWebImage'注意到我并没有在ios之后指定需要的系统版本号,因为在一般情况下,的确是不需要指定ios版本的。此时由于我项目是部署在i原创 2015-10-28 21:54:03 · 4710 阅读 · 2 评论 -
iOS如何给没有点击事件的View添加响应操作
开发过iOS的同学都知道,我们可以在storyboard中通过拉线IBAction为按钮、TableViewCell等添加响应事件,或者在代码中执行view对象的一个addTarget函数来进行事件响应。但是如果是一个UIImageView呢?我们发现无法在storyboard中拖拽出一条线,在代码中也没有addTarget方法,那么,如何给ImageView或者Label这类本身没有响应事件的控原创 2015-10-29 15:43:15 · 6672 阅读 · 0 评论 -
iOS开发Post请求错误:Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or ...
由于最近忙着开发项目,好几天没来写博客了。我把最近遇到的一个小bug来和大家分享一下。 最近iOS开发中,客户端需要使用http POST去进行请求服务器。需要发送的是XML格式的,当然接收的也是XML。我们准备使用的是AFNetworking来实现。关于AFnetworking的使用以及Cocoapods包管理,请参考我的其他几篇博客:《iOS项目开发实战——使用AFNetworki原创 2015-11-22 19:31:11 · 41603 阅读 · 12 评论 -
iOS开发——网络连接判断
iOS开发必然会涉及网络操作,作为优化用户体验的第一步,在请求网络前,往往首先需要判断客户端是否连接网络,并给用户提示。然后用户才会去进行打开网络或连接WiFi等操作。下面我将会使用苹果提供的Reachability文件去进行网络连接的判断。代码已经上传:https://github.com/chenyufeng1991/JudgeNetworkConnect 。共有两个案例,下面分别来实原创 2015-12-09 22:01:20 · 2676 阅读 · 0 评论 -
iOS9使用提示框进行文本输入的正确实现方式
我在之前写过一篇博客《iOS9使用提示框的正确实现方式》,主要讲了如何使用UIAlertController替换UIAlertView进行提示框的实现。今天我们将会来实现一下在提示框中如何进行文本输入。该功能可以让用户进行密码确认等功能。实现代码如下:#import "SecondViewController.h"#import "AppDelegate.h"@interface S原创 2015-10-31 22:36:02 · 8615 阅读 · 1 评论 -
iOS项目开发实战——实现UICollectionView的动态增加Cell与Section
UICollectionView是iOS中一种非常重要的控件,继承自UITableView,和Android中的RecycleView也是类似的,常常用在使用瀑布流的界面中,目前已经越来越常见了。今天我们将会来实现如何对CollectionView中的Cell和Section进行动态的增加,并实现对Header头部标题进行动态的添加修改。此时将不再是静态呈现一个瀑布流的视图了。 我已经原创 2015-11-01 00:24:31 · 11923 阅读 · 0 评论 -
iOS高级开发——CollectionView的cell中按钮的点击实现
在我刚初学iOS的时候,我就问一些大神,iOS开发中最难的哪些部分。有些人就说是自定义控件、UI和交互设计。那个时候我将信将疑,随着自己开发的深入,自己的确是深有体会。开发一款App产品,很大一部分时间是在和UI打交道。因为开发中很多功能是直接封装好的或者有现成模板可以用的,唯有UI是根据不同的App千变万化的。所以今天我们继续来研究iOS中比较高级的控件——UICollectionView,来实原创 2015-11-25 14:03:43 · 12718 阅读 · 3 评论 -
iOS高级开发——CollectionView的cell长按事件实现
我们在使用TableView时,默认有单击或者侧滑删除等操作,但是原生的没有长按操作。而来到CollectionView中,又少了一个侧滑操作。在实际的项目开发中,我们需要使用单击或者长按来进行不同的操作,并获取cell的section和row。所以我们在CollectionView中来实现,在TableView中也是类似。 该demo我已经上传到 https://github.原创 2015-11-25 15:25:48 · 10487 阅读 · 2 评论 -
iOS开发——如何做一个漂亮的引导页
对于一款App来说,引导页是必不可少的组成元素,每当用户第一次安装应用,或者更新一次应用后,首先引入眼帘的就是引导页。一个漂亮的引导页可以增加用户体验。今天我们来实现这个功能,demo我已经集成到 https://github.com/chenyufeng1991/iOS-Oncenote 。(1)引导页的父View是一个ScrollView,所以引导页才能进行左右的滚动。我使用storyb原创 2015-11-25 16:39:48 · 7696 阅读 · 2 评论 -
iOS开发——App集成短信验证码
无论是在网页上还是在客户端,每当我们进行注册的时候,往往会进行短信或者邮箱验证,这是一种不错的安全机制。对于用户体验来说,如果是在PC的网页上,用邮箱或者短信验证都比较方便;如果是在手机上,那么使用短信验证就比较方便。这篇博客我们将会在iOS应用中实现短信验证码的功能。实例demo我已经集成到 https://github.com/chenyufeng1991/iOS-Oncenote 。原创 2015-11-25 17:45:02 · 7061 阅读 · 4 评论 -
iOS开发——使用MBProgressHUD来增加用户体验(二)
我在上一篇博客《iOS开发——使用MBProgressHUD来增加用户体验》主要实现了使用别人已经封装的MBProgressHUD来进行加载提示,可以说是相当的方便。今天我们使用Github上原生的MBProgressHUD第三方库来进行加载提示,会比别人已经封装的麻烦一点点。代码已经上传至:https://github.com/chenyufeng1991/UseMBProgressHUD。实现原创 2015-12-12 14:23:59 · 5419 阅读 · 0 评论 -
iOS开发——定制圆形头像与照相机图库的使用
现在的App都非常流行圆形的头像,比如QQ右上角的头像,今日头条的头像等等。这已经成为App设计的趋势了。今天我们就来简单实现一下这个功能,我还会把从手机拍照中或者图库中取出作为头像的照片存储到应用程序沙盒中。下次进入应用的时候还会显示该头像。原创 2015-12-09 23:49:39 · 4761 阅读 · 2 评论 -
iOS开发——使用MBProgressHUD来增加用户体验
对于移动客户端应用来说,本身就非常注意用户体验,比如一个长时间的加载造成界面卡死,MBProgressHUD就可以帮助你解决该问题。MBProgressHUD可以在网页加载、下载等耗时操作中给予用户以提示。HUD的本意就是抬头显示功能。今天我们就尝试来使用MBProgressHUD这个强大的第三方库(感谢)。MBProgressHUD在Github的地址:https://github.com/jd原创 2015-12-12 11:23:11 · 7004 阅读 · 4 评论 -
iOS开发中关于import头文件放置位置的tips
最近在进行iOS开发过程中,遇到一个摸不着头脑的问题。具体描述下:我使用Cocoapods管理了一个第三方库BmobSDK,然后需要在某文件中使用它,当然首先应该import进头文件,由于项目头文件较多,我是这样写的:#import "AppDelegate.h"//import其他的头文件;#define UISCREEN_WIDTH ([[UIScreen mainScreen] b原创 2015-11-28 13:17:56 · 3938 阅读 · 0 评论 -
iOS开发——网络请求案例汇总
在实际的项目开发中,连接网络是每一款App必不可少的基本功能。对于客户端的网络请求而言,无非是有两个实现方向:使用网络请求框架或者不使用网络请求框架。在这篇博客中,我将用苹果自带的网络请求方式(不使用第三方框架)下对iOS网络请求方法做一个汇总。我将在之后的博客中介绍使用AFNetworking框架进行请求的实现。代码已经上传至:https://github.com/chenyufeng1991/原创 2015-11-26 18:43:19 · 3554 阅读 · 0 评论 -
iOS开发——网络请求案例汇总(AFNetworking)
我在之前一篇博客中实现了使用NSURLConnection或者NSURLSession来请求网络数据,用的都是苹果自带的方法。现在我们使用最流行的AFNetworking来进行网络请求。【AFNetworking请求SOAP】 SOAP一般需要我们发送XML数据,返回的一般也是XML数据,原创 2015-11-29 14:18:12 · 3386 阅读 · 0 评论 -
iOS应用分发与内测(一)
今天开始我将用几篇博客来讲解如何实现iOS应用的分发与内测,将的会较为详细,不仅仅是通过点几下鼠标就完成任务,也会对其中的一些技术或者概念进行讲解。当我们把一款iOS应用开发完毕后,不是立即就上线到App Store,这样的风险实在是太大,被苹果拒的可能性也很大。在上线前的一个重要步骤就是进行应用的分发与内测,大概的意思就是让组内的所有开发者或者公司中的其他人员(PM、测试、市场人员等等)安装该款原创 2016-01-17 22:46:21 · 6003 阅读 · 5 评论 -
iOS应用分发与内测(二)
在了解了上一篇博客中的概念之后,现在我们来实际操作,如果有看过《iOS开发——远程消息推送的实现》这篇博客实现远程通知推送的话,会对今天的操作很熟悉。实现该步骤需要苹果开发者账号(99刀)。具体实现如下:(1)导出钥匙串访问。选择从证书助理“-->“从证书颁发机构请求证书”,电子邮件地址和常用名称都可以填写你的苹果开发者账号的邮箱,最后这个保存的就是CSR文件,保存好,等下会使用;(2)登录苹果开原创 2016-01-18 01:16:29 · 3512 阅读 · 0 评论 -
iOS开发之NSXMLParserDelegate解析失败
在iOS开发中,使用NSXMLParserDelegate来解析XML是非常方便的,代码模式也是比较固定的。这些XML数据一般都是服务器返回的数据。但是我今天碰到一个小插曲,突然发现XML不能解析了。具体情况如下:服务器返回数据:。然后我的目的是对这个message进行解析。解析代码实现如下:#import "InternalGateIPXMLParser.h"@imple原创 2015-11-30 17:56:51 · 4078 阅读 · 7 评论 -
iOS开发——远程消息推送的实现
在我们使用App的过程中,总是会收到很多的消息推送,今天我们就要来实现这个功能。首先消息推送分为本地消息推送和远程消息推送,而其中又以远程消息最为常用。但是在推送远程消息之前,有两个前提条件,你需要购买苹果的开发者账号,也就是每年99刀;并且有一台iOS真机(模拟器不能测试推送)。其实远程推送需要有服务器,但是我们自己暂时没有服务器,到时候后台使用Parse进行推送。实现步骤如下:(1)进入苹原创 2015-12-18 09:55:55 · 3087 阅读 · 0 评论 -
iOS高级开发——CollectionView修改cell的文本及模型重构
该篇博客是在《iOS高级开发——CollectionView的动态增删cell及模型重构》的基础上继续进行开发的。在之前那篇博客中,我们实现了动态的增删cell,并且使用了模型Model进行重构。今天我们要实现的是动态修改cell中的描述文字,通过这个案例,我们能发现使用Model的好处。代码已经上传至:https://github.com/chenyufeng1991/CollectionVie原创 2015-12-02 15:01:25 · 3787 阅读 · 0 评论 -
iOS高级开发——CollectionView的动态增删cell及模型重构
CollectionView是iOS开发中的高级控件,比其他控件使用起来要复杂。我在前面几篇博客中讲解了CollectionView的一些高级用法:《iOS高级开发——CollectionView的cell长按事件实现》、《iOS高级开发——CollectionView的cell中按钮的点击实现》、《iOS项目开发实战——实现UICollectionView的动态增加Cell与Section》。今原创 2015-12-02 10:08:39 · 9941 阅读 · 4 评论 -
iOS UIView动画详解(Swift)
现在的iOS开发中,有很多的动画框架可以使用,包括苹果自带的CoreAnimation框架,Facebook的Pop等等,这些的确都是程序员的利器。但是如果我们仅仅是想要实现一些比较简单的动画呢?杀鸡焉用牛刀。我们直接用UIView就可以了。今天我们就来好好聊聊UIView动画,使用Swift编写(大家可以看到我有时候用OC,有时候用Swift,现在的iOS学习的基本技能看着OC代码能写出Swif原创 2015-11-11 11:39:05 · 7721 阅读 · 8 评论 -
iOS UIView动画详解(Objective-C)
我在之前的一篇博客中《iOS UIView动画详解(Swift)》讲解了使用Swift来实现UIView类下面提供的多种动画效果,如位置动画、旋转动画、缩放动画、颜色动画、透明度动画等等。为了这个题目的完整性,今天我使用Objective-C来完全重写以上的所有的动画。项目案例已经上传至:https://github.com/chenyufeng1991/iOS-UIView-Animation原创 2016-01-04 10:50:41 · 4891 阅读 · 0 评论 -
iOS开发——使用delegate进行消息传递
iOS开发中,界面之间传递消息或者数据是最基本的一种需求,我们可以使用很多方法来实现这种需求,比如在头文件中暴露一个属性、比如使用notification等等。今天我们要来介绍另一种方式:使用delegate传递消息。 delegate称为委托,同时也是一种代理设计模式。使用委托避免了类与类的耦合度过高。利用委托赋值更加安全可控,委托赋值在不暴露自己类的属性的前提下就可以对自己进行原创 2015-12-18 19:40:15 · 4204 阅读 · 1 评论 -
iOS开发——代码生成TabBar与视图切换详解
我在之前多篇博客中讲解了在不使用storyboard而使用nib文件的情况下,使用代码生成导航栏并进行跳转,具体可以参考《iOS开发——界面跳转与返回及视图类型详解》《iOS纯代码实现界面建立、跳转、导航栏(无storyboard、无nib)(Objective-C)》。今天我来讲解下在使用nib搭建界面的情况下,用代码生成TabBar,并进行界面之间的跳转。代码示例已经上传至:https://g原创 2015-12-22 17:39:48 · 5172 阅读 · 0 评论 -
iOS调试技巧——编译器预定义宏
我们都知道,Objective-C是C语言的超集,必然保留了C语言的一些特性。今天我们就利用这些编译器预定义的宏来输出一些信息,以达到调试程序的目的。这些宏包括:(1)__FUNCTION__ ://获取当前方法名;(2)__func__ ://获取当前方法名;(3)__PRETTY_FUNCTION__ ://获取当前方法名;(4)__LINE__ ://获取当前所在行;(5)_原创 2015-12-22 21:38:18 · 4325 阅读 · 4 评论 -
iOS开发——来改掉那些已经过时的方法吧(持续更新中)
iOS平台在快速的发展,各种接口正在不断的更新。随着iOS9的发布,又有一批老方法不推荐使用了,你若调用这些方法,运行的结果是没有问题的,但是会出现警告“***is deprecated :first deprecated in iOS 9.0 - Use *******”.就像如图所示:。 在实际项目开发中,我们要秉承一个信念就是:要把每一个警告当做错误来处理,并解决每一个警告原创 2015-11-26 20:20:37 · 12056 阅读 · 3 评论