- 博客(60)
- 收藏
- 关注
原创 iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。
2014-11-13 17:42:12 383
原创 UICollectionView 详解
什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者iPad
2014-10-22 09:17:50 376
原创 iOS 文件操作
iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。Library包含Caches、Preferences目录。 上面的完整路径为:用
2014-10-20 22:06:10 384
原创 SDWebImage缓存图片的机制
SDWebImage是一个很厉害的图片缓存的框架。既ASIHttp+AsyncImage之后,我一直使用AFNetworking集成的UIImageView+AFNetworking.h,但后者对于图片的缓存实际应用的是NSURLCache自带的cache机制。而NSURLCache每次都要把缓存的raw data 再转化为UIImage,就带来了数据处理和内存方面的更多操作。具体的比较在这
2014-10-19 17:48:30 318
原创 那些不容错过的Xcode插件
古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind,CMD+SHIFT+X调出CodePilot,输入任何你想到搜的东西吧!想搜appFinishLaunchingWithOptions?忘记咋
2014-10-06 13:40:37 424
原创 如何安装cocoapods
cocoapods的安装, 需要ruby的环境, 同时和它配合使用的是gem(在这里,我们需要使用gem的最高版本)的环境, 由于ruby的服务器在国外, 所以, 为了快速安装, 我们需要使用淘宝的镜像. 由于cocospods的服务器也是在国外, 安装也很慢, 这时候, 我们也需要用国内的淘宝镜像.在这里提供了cocoapods的安装过程:网址:http://code
2014-10-06 13:38:27 421
原创 从UITableView删除一行与Model-View-Controls模型
我如何从UITableView删除一行呢?当人们构建简单的表视图引用程序后,这是另一个常见的问题。同样的,它比你想象的更容易。但在进入编码部分,我打算给你介绍一个程序员使用最多的设计模式,用户界面编程的模型 - 视图 - 控制器模式(Model-View-Controller)。如果你是认真对待iOS编程的话,你无法逃避学习模型 - 视图 - 控制器(MVC)。除了iO
2014-09-20 09:17:53 374
原创 在iOS中自动布局
在开始iOS 7中自动布局教程(一) 你已经看到旧的“struts-and-springs”模型让user interfaces不能较容易的解决所有的布局问题。自动布局是一个解决方案,但是也是因为它的强大,所以在使用它的时候,我们需要一点小技巧。值得高兴的是,Xcode5让自动布局更容易了。如果你在Xcode4中尝试过自动布局并且放弃了,那现在我们希望你能再给它一个机会。我们将在Xcode
2014-09-20 09:06:38 676
原创 使用StoryBoard来建立导航控制器和表视图
这个文章,我们将讨论新的东西- 故事板(Storyboard)。这是一个最令人兴奋的功能,在Xcode 4.2和iOS 5 SDK。为iOS开发者,它可以使你的生活,更简单,让您轻松地设计你的iOS应用程序的用户界面。在本教程中,我们将向您展示如何使用故事板来建立一个导航界面,并整合与UITableView的。我们尽量使教程保持简单,重点解释概念。因此,在这篇教程里没有花哨的界面,漂亮
2014-09-20 08:54:58 1878
原创 苹果Xcode帮助文档阅读指南
Xcode文档的结构如上图,打开后,整个文档界面有左面的侧栏和右面的内容区域构成。左面的侧栏可以选择不同的文档库。你的Xcode里面一般来说有一组不同版本的iOS文档库、一组不同版本的OS X文档库,以及一个Xcode文档库。如果你这里没有你要查看的文档库,你可以选择Xcode的Preferences菜单,然后选择Downloads -> Documentation。在这里
2014-09-20 00:07:03 300
原创 采用设计模式使您的应用程序合理化
采用设计模式使您的应用程序合理化在 Objective-C 编程中,继承是添加应用程序特定行为的一种方式。创建的现有类的子类,要么增加超类的属性和行为,要么在某种程度上修改它们。但是,它也有其他更加动态的方式,可添加应用程序特定行为,而不涉及到子类化。这些动态技巧和方式,是基于设计模式的。正如本文章所解释的,在代码中采用设计模式,有助于增加类和框架类的可再用性和扩展性。设计模式:解决编程问
2014-09-18 15:41:38 342
原创 对代码命名一点思考和理解
一个软件最后都会落实到代码。而代码,其背后的架构设计或设计思想或模式固然重要,但我觉得更重要的东西则是良好的命名。混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。相反,良好的命名,则可以让我们的代码非常容易读懂,也能向读者正确表达事物以及逻辑的本质,从而使得代码的可维护性就大大增强,读命名好的文章是非常流畅的,会有一种享受的感觉。另外一点也
2014-09-18 08:48:50 347
原创 iOS中UITabbarController的用法
Retina (tabbar 高度:1pt = 2 px)非Retina (tabbar 高度:1pt = 1px)eg:@interface TabBarController : UITabBarControllerFirstController *firstVC = [[FirstController alloc] init]; firstVC.tabBarItem.
2014-09-16 18:57:27 348
原创 iOS7 中关于导航切换影响UIScrollView的问题
在 iOS 7 中,如果某个 UIViewController 的 self.view 第一个子视图是 UIScollView, 同时当这个 UIViewController 被 push 或 initWithRootController 成为 UINavigationController控制的Controller时,这个 UIViewController的 view 的子视图 UIScollVi
2014-09-16 18:54:58 322
原创 iOS获取沙盒目录
//沙盒总目录NSLog(@"%@",NSHomeDirectory());//沙盒中tmp的目录地址NSLog(@"%@",NSTemporaryDirectory());//沙盒中*.appNSLog(@"%@", [NSBundlemainBundle].bundlePath);// NSSearchPathForDirectoriesInDomains
2014-09-16 18:54:03 391
原创 iOS导航风格
一个导航风格(风格属性)栏可以容纳很多种不同类型的对象。你刚刚学过了如何将一个分段控件作为标题试图加入到导航栏中,来向用户呈现一组子类别。 另一个用于导航栏的流行UI组件是UIToolbar对象。工具栏可以容纳一组自定义的按钮,其中可以包括标准系统按钮,例如书签和搜索等按钮。许多预置 的iPhone应用程序,例如Safari和Mail,都使用工具栏来对导航栏的功能进行扩展。在显示工具栏之前
2014-09-07 10:40:59 342
原创 iOS实现打电话功能
- (void)callAction{ NSString *number = @"";// 此处读入电话号码 // NSString *num = [[NSString alloc]initWithFormat:@"tel://%@",number]; //number为号码字符串 如果使用这个方法结束电话之后会进入联系人列表 NSString *num = [[NSStri
2014-09-04 08:59:18 383
原创 iOS导航控制器的使用
一、介绍 1、UINavigationController的介绍 2、UINavigationController的使用 3、根据需求定制UINavigationConBar 4、界面传值的使用 二、UINavigationController 1、UINavigationController,导航控制器,专门管理
2014-09-02 13:25:32 542
原创 iOS学习之UINavigationController详解与使用
1、UINavigationController导航控制器如何使用UINavigationController可以翻译为导航控制器,在iOS里经常用到。我们看看它的如何使用:下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在
2014-09-02 08:34:34 293
原创 iPhone中使用NSLocalizedString实现国际化
iPhone中使用NSLocalizedString实现国际化一、获取系统所支持的国际化信息在国际化之前,你可以在iphone中的”设置->通用->多语言环境->语言”中来查看你的iphone支持哪些语言,当然也可以写一段代码测试一下你的iphone都支持哪些语言.测试代码如下:NSUserDefaults *defaults = [NSUserDefaults stand
2014-09-01 23:47:21 283
原创 iOS获取屏幕的宽度和属性
app尺寸,去掉状态栏CGRect r = [ UIScreen mainScreen ].applicationFrame;r=0,20,320,460屏幕尺寸CGRect rx = [ UIScreen mainScreen ].bounds;r=0,0,320,480状态栏尺寸CGRect rect; rect = [[UIApplicat
2014-09-01 21:59:37 229
原创 NSBundle的使用方法
bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程
2014-09-01 21:33:43 339
原创 iOS 实现无缝滚动
头文件:#import @class ArticleViewController;@interface ArticleScrollViewController : UIViewController { //不使用数组,看起来更明了,为了节省内存同时还要看起来无缝,3个view最好 ArticleViewController *article1; ArticleVi
2014-09-01 19:04:20 324
原创 UIView
UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件UIView的功能 1.管理矩形区域里的内容2.处理矩形区域中的事件3.子视图的管理 4.还能实现动画 UIView的子类也具有这些功能下图就是视图的内层次
2014-09-01 19:01:26 283
原创 iOS截屏
//代码截屏 //(1)设置截屏的图片的大小 UIGraphicsBeginImageContext(view.frame.size); //(2)对那个视图截图固定的大小的图片 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; //(3)获取截图的图片对象 UIImage *im
2014-08-28 16:12:10 291
原创 iOS屏幕旋转与大小调整
屏幕旋转学习笔记 加速计是整个IOS屏幕旋转的基础,依赖加速计,设备才可以判断出当前的设备方向,IOS系统共定义了以下七种设备方向:typedefNS_ENUM(NSInteger, UIDeviceOrientation) { UIDeviceOrientationUnknown, UIDeviceOrientationPortrait,
2014-08-24 14:09:43 599
原创 UILabel, UITextField, UIButton
UILabel 用法UILabel 是iOS开发中用来显示文字的控件,是UIview的子类,所以具有UIview的所有功能,只不过比UIview多了文字显示的功能. UILabel 的使用过程和UIview类似,也是分四步: 1.创建对象. 2.配置属性. 3.添加到父视图 4.释放所有权 注
2014-08-20 12:52:33 322
原创 UIView
iOS概述UI概述UIWindowUIViewB2B 商家对商家B2C 商家对客户C2C 客户对客户C2B 客户对商家O2O(Online To Offline)在线离线,从线上到线下UI(User Interface):用户界面.iOS App = 各种各样的UI控件 + 业务逻辑和算法想要开发出精美的应用程序,需要熟
2014-08-18 22:26:29 323
原创 OC总结
一. OC类和对象1.面向过程编程(Procedure Oriented Programming,POP):以事件为中心,关心完成该事件的详细步骤,一步一步如何实现.面向对象编程(Object Oriented Programming, OOP):以事物为中心,也就是参数事件的参与者,设计事物的功能,而完成事件只是事物的所有功能中的一个小功能. 2.类:具有相同特征 和相同行为的
2014-08-18 07:58:26 321
原创 OC总结
一. OC类和对象1.面向过程编程(Procedure Oriented Programming,POP):以事件为中心,关心完成该事件的详细步骤,一步一步如何实现.面向对象编程(Object Oriented Programming, OOP):以事物为中心,也就是参数事件的参与者,设计事物的功能,而完成事件只是事物的所有功能中的一个小功能. 2.类:具有相同特征 和相同行为的
2014-08-17 21:03:19 375
原创 OC之内存管理
1.内存管理的基本原则iOS应用程序出现Crash(闪退), 90%以上的原因都是内存问题.内存问题体现在两个方面:内存溢出,野指针异常,内存过度释放了解内存管理,能帮助我们提升性能,大大减少调试bug时间.垃圾回收 (gc);MRC (Manual Reference Count, 人工引用计数) 遛狗原理 关灯原理ARC(Auto Reference
2014-08-14 22:39:25 345
原创 OC之NSDate
//1.创建日期对象 //创建的NSDate对象,获得的永远是0时区的时间. 东八区, 加8个小时. NSDate *date1 = [NSDate date]; NSLog(@"%@", date1); //创建明天此时的日期,后一天 //时间间隔,是以秒为单位. NSDate *tomorrowDa
2014-08-14 08:44:25 359
原创 OC之Cagegory, Extension, Protocol协议
Category(分类,类目) 的定义和使用Extension 延展Protocol 协议Extension 延展的主要作用:为类添加”私有”方法.面向对象编程的另外一个名字叫做面向接口编程.我们在设计一个类的时候,有些方法需要对外公开(接口), 有些方法可能仅仅内部使用.Extension 的功能是帮助我们去管理这些内部使用的方法(私有方法).Ex
2014-08-14 08:16:34 584
原创 OC之属性
setter 方法作用:为单一的实例变量赋值.setter 方法规范写法:-号方法,无返回值,名字以set开头 + 要设置的变量的实例变量名(首字母大写):(setter 方法有且只有一个参数) + 参数的类型(和实例变量类型相同) + 参数名(和实例变量名相同). (注意:如果以set开头,并且有多个参数,那么该方法为set方法,不是setter方法)getter 方法的作用:获取单一实例
2014-08-12 09:32:03 288
原创 OC之Block块,以及对数组进行排序
Block本质上是匿名函数(没有名称的函数), 标准C里面没有Block.//int (^)(int x, int y) block变量的类型 //block -- block变量的名字 //^(int x, int y) //{ // return x + y; //} ---- block变量的初值,bl
2014-08-09 20:55:40 428
原创 OC之字典(NSDictionary, NSMutableDictionary)
键值在字典中是一一对应的,成对存在的.与数学中的集合一样,存储的元素互不相同.//字典存在的价值:1.大容器,用来存储多个数据 2.用来存储的数据具有--对应的关系(使用key来标识value) 3.对于字典中的一对键值对(key-value)叫做字典中的一个元素.也叫一个条目,只要是对象就可以,不限制类型. 4.字典是无序的. 5.字典中的key是唯一的,一个key只能对应一个v
2014-08-09 20:52:41 400
原创 OC之 NSMutableString, NSNumber, NSMutableNumber, NSArray
//重写从父类继承的description方法- (NSString *)description{ return [NSString stringWithFormat:@"name:%@, gender:%@, phoneNumber:%@, address:%@, proupName:%@", _name, _geder, _phoneNumber, _address, _group
2014-08-07 22:30:46 471
原创 CO之NSString, NSArray, NSNumber
万物皆为对象API(application programming interface, 应用程序编程接口)在程序调用的时候,一般说提供接口,即方法.举例: //1.创建对象 //2.两种方式: //(1)便利构造器(+ 号方法) NSString *str1 = [NSString stringWithFormat:
2014-08-07 09:29:13 359
原创 OC之继承,初始化方法
继承:当多个类出现部分相同的实例变量和方法时,就要考虑用继承.继承的使用:将多个类中相同的实例变量的方法提出来写成一个公共的父类.继承的上层:父类 继承的下层:子类继承是单向的,不能相互继承.继承具有传递性:A继承于B, B继承于C, A具有B和C的特征和行为.子类可直接拥有父类中除了声明为@pivate的实例变量之外的全部内容.植物大战僵尸:普通僵尸,路障僵尸,铁桶
2014-08-05 22:04:11 603
原创 OC中的方法
实例变量的可见度:一共有三种 @public:公共的,在任何文件中都可以访问.(访问方式是通过对象+指向操作符+实例变量,例如:per->name) @protectde:受保护的,有一定的访问权限,只允许再本类文件以及子类文件中访问,其他文件不可以访问. @private:私有的,只允许再本类文件中访问,不可以在子类文件以及其他文件中访问. 默认的可见度是@
2014-08-04 23:59:13 459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人