- 博客(45)
- 收藏
- 关注
原创 几种常用的设计模式
(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate(二)观察者模式应用场景:一般为model层对,controller和view进行的
2014-03-17 15:18:24 464
原创 iOS 主要的开源库
1. AFNetworking在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库。它建立在NSURLConnection、NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到
2014-03-17 10:03:44 883
转载 一个iOS 框架介绍:MKNetworkKit
ASIHTTPRequest (作者:BenCopsey) 是一个使用简单,可用于各种从简单到复杂的 HTTP 请求,或者可用于处理 Amazon S3、Rackspace 等REST 服务的强大框架。不幸的是,Ben 早在 2011 年 9 月 21 日就已经声明停止开发和支持该框架(见http://allseeing-i.com/%5Brequest_release%5D; )。
2014-03-13 13:01:16 522
转载 Core Data 编程指南
一、技术概览1. Core Data 功能初窥 对于处理诸如对象生命周期管理、对象图管理等日常任务,Core Data框架提供了广泛且自动化的解决方案。它有以下特性。 (注:对象图-Object graph的解释:在面向对象编程中,对象之间有各种关系,例如对象直接引用另外的对象,或是通过引用链间接的引用其他对象,这些关系组成了网状的结构。我们把这些对象(和它们之间的联系
2013-12-20 15:44:16 402
转载 post和get的区别
今天看到了一些关于讨论post和get的区别,特贴出来和大家分享: post和get的区别post 地址栏不会出现一大串?bjnghfgreygt这样的东西如果是get,就会出现了1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如[url]http
2013-12-20 13:19:33 547
转载 ASIHTTPRequest和ASIDownloadCache实现本地缓存
需要注意的是,要做缓存的Http请求必须用get方法来获取数据。1、设置全局的Cache 在AppDelegate.h中添加一个全局变量@interface AppDelegate : UIResponder { ASIDownloadCache *myCache; } @property (strong, nonatomic) UIWindow *wi
2013-12-20 11:03:23 414
转载 uiview和CALayer 区别2
1.UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它本身完全是由CoreAnimation来实现的(Mac下似乎不是这样)。它真正的绘图部分,是由一个叫CALayer(Core Animation Layer)的类来管理。UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等等,实际上内部都是在访问它所包含的CAL
2013-12-17 16:10:29 352
转载 layer实例
在IOS的开发中,经常需要针对大量的UIViews进行个性化定制,这样的空间包括Button、Label、slider、web view and so on。几乎UIView的子类都可能会遇到个性化定制的时候。那么接下来就针对UIView的特性CALayer开进行一个个性化定制吧。What Are CALayers?CALayers是一个表示矩形区域内的可视内容的类,并且 任
2013-12-17 16:08:55 1335
转载 CALayer4-自定义层
本文目录一、自定义层的方法1二、自定义层的方法2 三、其他自定义层,其实就是在层上绘图,一共有2种方法,下面详细介绍一下。回到顶部一、自定义层的方法1方法描述:创建一个CALayer的子类,然后覆盖drawInContext:方法,使用Quartz2D API进行绘图1.创建一个CALayer的子类 2.在.m文件中覆盖drawInConte
2013-12-17 16:06:35 385
转载 CALayer3-层的属性
本文目录一、隐式动画属性二、position和anchorPoint回到顶部一、隐式动画属性* 在前面几讲中已经提到,每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根层)。所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动画。* 当对非Root Layer的部分属性进行相应的修
2013-12-17 16:05:21 321
转载 CALayer2-创建新的层
本文目录一、添加一个简单的图层二、添加一个显示图片的图层三、为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UIColor和UIImage?四、UIView和CALayer的选择五、UIView和CALayer的其他关系* 上一讲已经说过,UIView内部默认有个CALayer对象(层),通过layer属性可以访问这个层。要注意的是,这个默
2013-12-17 16:04:21 415
转载 CALayer-1
一、什么是CALayer* 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。* 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层。* 在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象),通过UIView的layer属性可以访问这个层。当UIView
2013-12-17 16:03:10 394
转载 UIView和CALayer
1: UIView的继承结构为: UIResponder : NSObject。 可以看出UIView的直接父类为UIResponder 类, UIResponder 是gsm的呢?官方的解释:The UIResponder class defines an interface for objects that respond to and handle event
2013-12-17 15:35:01 408
转载 iOS 动画3
619+ (void)animationRotateAndScaleDownUp:(UIView *)view620{621 CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath
2013-12-16 15:57:14 354
转载 iOS 动画2
428+ (void)animationPushDown:(UIView *)view429{430 CATransition *animation = [CATransition animation];431 [anima
2013-12-16 15:55:03 634
转载 iOS 动画1
@interface CoreAnimationEffect : NSObject028 029#pragma mark - Custom Animation030 031/**
2013-12-16 15:44:35 418
转载 IOS中的动画
IOS中的动画右两大类1.UIView的视图动画2.Layer的动画 UIView的动画也是基于Layer的动画动画的代码格式都很固定1.UIView动画一般方式[UIView beginAnimations:@"ddd" context:nil];//设置动画[UIView commitAnimations]; //提交动画这两个是必须有的,然后在两句的中间添加动
2013-12-16 15:43:09 360
原创 iOS面试2
47.kvc是什么?kvo是什么?有什么特性?48.响应者链是什么?49.unix上进程怎么通信? UNIX主要支持三种通信方式: 1. 基本通信:主要用来协调进程间的同步和互斥 (1)锁文件通信 通信的双方通过查找特定目录下特定类型的文件(称锁文件)来完成进程间 对临界资源访问时的互斥;例如进程p1访问一个临界资源,首先查看是
2013-12-16 15:39:08 415
原创 iOS 面试1
1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源 还是只有一份,那如果我们对A
2013-12-16 15:38:29 485
转载 iOS7适配问题
iOS 7发布了,适配问题来了,开发者都忙起来了。先记一个iOS7 的几个特点:1.坐标:以屏幕左上角为原点(iOS7以前在状态栏或者导航条下)2.UIScrollView(包括其子类,比如UITableView):会自动在顶部和底部预留一些空白(因为滚动经过半透明导航条或者tabbar下面,需要能隐约看到的效果),是否预留空白可以由UIViewController的
2013-12-16 15:28:33 444
转载 IOS7 隐藏状态栏 (电池栏)
电池状态栏。//方法一(代码设置):现在ios7已经更改为透明,并且不占用屏幕高度。其中隐藏及显示的方法如下:在uiviewcontroller的子类下,调用: if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) { // iOS 7
2013-12-16 15:26:56 448
转载 iOS实现简单图文混排效果
在很多新闻类或有文字展示的应用中现在都会出现图文混排的界面例如网易新闻等,乍一看去相似一个网页,其实这样效果并非由UIWebView 加载网页实现。现在分享一种比较简单的实现方式 iOS sdk中为我们提供了一套完善的文字排版开发组件:CoreText。CoreText库中提供了很多的工具来对文本进行操作,例如CTFont、CTLine、CTFrame等。利用这些工具可以对文字字体
2013-12-16 15:22:30 433
转载 Core Animation
第一章 核心动画概念核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。 前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。 通过是CALayer来使用更复杂的一些动画。 3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。
2013-12-14 17:46:36 482
转载 ASIHTTPRequest
ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互。ASIHTTPRequest功能很强大,主要特色如下:l 通过简单的接口,即可完成向服务端提交数据和从服务端获取
2013-12-12 13:55:36 373
转载 代码注释的格式
1.先写一下个个字段对应的意思/*! @header 文件名 @abstract 简介,概念 @discussion 用途,方法 @copyright 版权 */给出一个模版/*! @header MFMailComposeViewController @abstract The MF
2013-12-12 13:46:48 703
转载 UML类图组成
UML类图的相关知识,UML类图(Classdiagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。UML类图UML类图(Classdiagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。类图(Classdiagram)由许多(静态)说明性的模型元素(例如类
2013-12-12 13:39:54 2824
转载 CoreData 数据传输对象DTO(data transfer object)
在这里以DTO来描述,稍有欠缺,DTO的引用来源于DELPHI的remberobject (RO)三层。是通过数据库结构生成的传输对象,即数据库类对象。可以将DTO或类对象统一理解为内存数据操作对象即可。在IOS中,IOS已集成好相应的工具直接生成数据库访问对象。该例子基于我前面写好的文章来创建DTO的。步骤:一,在工程上右键选择新建-》选IOS中的COREDATA-》
2013-12-12 13:37:24 662
转载 Core Data 自动生成及基本数据操作(4)--关系操作
在ios 中的NSRelationshipDescription中的删除规则一共有四类如下://NSNoActionDeleteRule,无任何删除动作。如:A表中的关系字段值与B表中的键值相对应,当删除B表中的数据时,A中的关系字段值保持不变。//NSNullifyDeleteRule空删除规则。如:A表中的关系字段值与B表中的键值相对应,
2013-12-12 13:36:28 470
转载 Core Data 自动生成及基本数据操作(3)
在前面两小节中已介结了COREDATA自动生成MODEL框架。本节主要对COREDATA进行基本的数据操作。首先为了能进行演示,动态创建了几个按钮;代码如下:- (void)CreateButton{ UIButton *newbtn = [UIButton buttonWithType:UIButtonTypeRoun
2013-12-12 13:35:23 469
转载 Core Data 自动生成及基本数据操作(2)
创建COREDATA时自动产生三个必要属性。NSManagedObjectContext *managedObjectContext;管理对象上下文,主要是对数据的操作,保存,访问锁等。这里理解为数据库操作的commandNSManagedObjectModel *managedObjectModel;数据模块主要是存放实体相当于表的管理模块
2013-12-12 13:34:44 475
转载 Core Data 自动生成及基本数据操作(1)
SDK for xcode 4.2 第一步:打开Xcode. 选择空的工程,点Next. 输入工程名这里为:coredatademo,同时记得将Use Core Data选项打上勾。因为打上勾就自动生成model文件。点next 选择工程保存的位置后点击Create进行创建工程。创建好的工程如下:第
2013-12-12 13:33:56 608
转载 AVAudioPlayer 音频播放器 使用 教程
IOS中有三种播放音频的方式:AVAudioPlayer、音频服务、音频队列。 此文主要讲AVAudioPlayer,其他两个请见相关文章。AVAudioPlayer在AVFoundation框架下,所以我们要导入AVFoundation.framework。AVAudioPlayer类封装了播放单个声音的能力。播放器可以用NSURL或者NSData来初始化,要
2013-12-12 11:51:33 800
转载 Object-c 单例模式中的 allocWithZone作用
最近因为在ios应用开发中,考虑到一些公共方法的封装使用,就决定使用单例模式的写法了。。不知道,Object-c中的单例模式的写法是否和java中的写法是否有所区别?于是阿堂从网上一搜,发现“ Objective-C的singleton模式 ”一文被很多人转载了,其主要内容如下Apple官方建议 由于自己设计单态模式存在一定风险,主要是考虑到可能在多线程情况下会出现的问题
2013-12-12 11:38:44 403
转载 IOS设计模式之四(备忘录模式,命令模式)
备忘录(Memento)模式 备忘录模式快照对象的内部状态并将其保存到外部。换句话说,它将状态保存到某处,过会你可以不破坏封装的情况下恢复对象的状态,也就是说原来对象中的私有数据仍然是私有的。 如何使用备忘录模式 在ViewController.m中增加下面的方法: Objective-c代码 - (void
2013-12-12 11:37:34 404
转载 IOS设计模式之三(适配器模式,观察者模式)
适配器(Adapter)模式适配器可以让一些接口不兼容的类一起工作。它包装一个对象然后暴漏一个标准的交互接口。如果你熟悉适配器设计模式,苹果通过一个稍微不同的方式来实现它-苹果使用了协议的方式来实现。你可能已经熟悉UITableViewDelegate, UIScrollViewDelegate, NSCoding 和 NSCopying协议。举个例子,使用NSCopying协议,
2013-12-12 11:36:39 482
转载 IOS设计模式之二(门面模式,装饰器模式)
门面(Facade)模式(译者注:facade有些书籍译为门面,有些书籍译为外观,此处译为门面) 门面模式针对复杂的子系统提供了单一的接口,不需要暴漏一些列的类和API给用户,你仅仅暴漏一个简单统一的API。下面的图解释了这个概念: 这个API的使用者完全不需要关心背后的
2013-12-12 11:35:29 393
转载 IOS设计模式之一(MVC模式,单例模式)
iOS 设计模式-你可能已经听说过这个词,但是你真正理解它意味着什么吗?虽然大多数的开发者可能都会认为设计模式是非常重要的,然而关于设计模式这一主题的文章却不多,并且有时候我们开发者在写代码的时候也不会太关注它。 在软件设计领域,设计模式是对通用问题的可复用的解决方案。设计模式是一系列帮你写出更可理解和复用代码的模板,设计模式帮你创建松耦合的代码以便你不需要费多大力就可以改变或者替
2013-12-12 11:34:03 404
转载 iOS的主要框架介绍
框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。 IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation、UIKit、和Core Graphics这些框架。根据你为应用程序选择的模版,相关的
2013-12-12 11:31:05 459
转载 适配iOS7开发2
在前一篇文章中介绍了非autolayout模式下iOS7的适配工作。 今天来介绍一下autolayout下的适配工作。首先,我们用xcode4.6.3创建一个simgle view application. 选中Use storyboard.拖一个UIButton到view中。 由于开启了autoLayout, 在xcode4.6.3中,自动会有两个auto layout约束,分别
2013-12-11 11:05:45 466
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人