08 2014 档案
摘要:/创建缩小了的视图myWeiBoImageVC = [[UIViewController alloc] init];myWeiBoImageVC.view.clipsToBounds = YES;myWeiBoImageVC.view.alpha = 0.0;myWeiBoImageVC.view....
阅读全文
摘要:ios4 设备上最好就不要使用 ARC。。。strong,weak 用来修饰属性。strong 用来修饰强引用的属性;@property (strong) SomeClass * aObject;对应原来的@property (retain) SomeClass * aObject; 和 @prop...
阅读全文
摘要:Apple提供了两种形式的选择器:日期选择器(UIDatePicker)与自定义选择器(UIPickerView)。当用户使用日期选择器选定一个时间后,调用datePickerID.date可以直接获得一个NSDate对象,从而可以进行一系列的时间与日期处理。自定义选择器的使用稍微麻烦点,当你直接从...
阅读全文
摘要:影响 UITableView 滚动的流畅性的原因1、 在代理方法中做了过多的计算占用了 UI 线程的时间2、同上3、Cell 中 view 的组织复杂关于第一点,首先要明白 tableview 的代理(这里指 datasource 和 delegate 的那套方法,下同)方法的调用顺序,和时机。对于...
阅读全文
摘要:http://developer.apple.com/library/ios/samplecode/Birthdays/Birthdays.ziphttp://developer.apple.com/library/ios/samplecode/ClockControlPalette/ClockCo...
阅读全文
摘要:1.UITableView加载的顺序是先得到表的行的高度,也就是先调用heightForRowAtIndexPath方法,然后再调用cellForRowAtIndexPath,所以我们有两个办法实现自定义cell高度(解决不同section的不同行高问题)。一:改变它的加载顺序,或者说白了就是计算好...
阅读全文
摘要:iOS5新特性:强大的Core Image(教你做自己的美图秀秀))iOS5给我们带来了很多很好很强大的功能和API。Core Image就是其中之一,它使我们很容易就能处理图片的各种效果,色彩啊,曝光啊,饱和度啊,变形啊神马的。可惜苹果一直没能完善官方文档,也没有推出示例代码,所以国内很多同学可能...
阅读全文
摘要:使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中。此类是Core Graphics框架关于path的一个封装。使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状。1.Bezier Path 基础UIBezierPath对象是CGPathRef数据类...
阅读全文
摘要:PDF文档存储依赖于分辨率的向量图形、文本和位图,并用于程序的一系列指令中。一个PDF文档可以包含多页的图形和文本。PDF可用于创建跨平台、只读的文档,也可用于绘制依赖于分辨率的图形。 Quartz为所有应用程序创建高保真的PDF文档,这些文档保留应用的绘制操作,如图13-1所示。PDF文档的结果将...
阅读全文
摘要:不同的设备(显示器、打印机、扫描仪、摄像头)处理颜色的方式是不同的。每种设备都有其所能支持的颜色值范围。一种设备能支持的颜色可能在其它设备中无法支持。为了有效的使用颜色及理解Quartz 2D中用于颜色及颜色空间的函数,我们需要熟悉在Color Management Overview文档中所使用的术...
阅读全文
摘要:一个Graphics Context表示一个绘制目标。它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息。Graphics Context定义了基本的绘制属性,如颜色、裁减区域、线条宽度和样式信息、字体信息、混合模式等。我们可以通过几种方式来获取Graphics Context:Quartz提供...
阅读全文
摘要:Quartz 2D编程指南是论坛会员德鲁伊翻译的国外的Quartz 2D一系列学习资料,供大家参考Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境。我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿、...
阅读全文
摘要:IOS提供两种创建图形的途径:1.OpenGL.2.Quartz、Core Animation、UIKit图形支持.UIKit的图形系统1.视图绘画周期:DrawRect方法,在任何时候,当视图的一部分需要重画时会调用。触发调用的四种情况:1>对遮挡您的视图的其它视图进行移动或删除操作。2>将视图的...
阅读全文
摘要:第六章:Specialized Layers类别用途CAEmitterLayer用于实现基于Core Animation粒子发射系统。发射器层对象控制粒子的生成和起源CAGradientLayer用于绘制一个颜色渐变填充图层的形状(所有圆角矩形边界内的部分)CAEAGLLayer/CAOpenGLL...
阅读全文
摘要:第五章:TransformsAffine TransformsCGAffineTransform是二维的Creating a CGAffineTransform主要有三种变化方法旋转:CGAffineTransformMakeRotation(CGFloat angle)缩放:CGAffineTra...
阅读全文
摘要:第四章:Visual EffectsRounded Corners例子4.1cornerRadius源码在这里下载:http://www.informit.com/title/9780133440751[objc]view plaincopyprint?#import"ViewController....
阅读全文
摘要:[objc]view plaincopyprint?-(void)drawLayer:(CALayer*)layerinContext:(CGContextRef)ctx{CGFloatwidth=10.0f;//drawathickredcircleCGContextSetLineWidth(ct...
阅读全文
摘要:Book DescriptionPublication Date:August 12, 2013Core Animation is the technology underlying Apple’s iOS user interface. By unleashing the full power o...
阅读全文
摘要:Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度...
阅读全文
摘要:1.UITextField的初始化和设置 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; [textField setBorderStyle:UITextBorde...
阅读全文
摘要:iOS7中计算UILabel中字符串的高度iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下:UILabel+StringFrame.h//// UILabel+StringFrame.h// Lab...
阅读全文
摘要:1 [[UIImage imageNamed:@"button_textured_30"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];其中Insets这个参数的格式是(top,left,bottom,right),从上、左、下...
阅读全文
摘要:OC语言构造方法一、构造方法(一)构造方法的调用完整的创建一个可用的对象:Person*p=[Personnew];New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返回分配的对象);2)使用init方法来对对象进行初始化。可以把new方法拆开如下:1.调用类方...
阅读全文
摘要:OC语言@property@synthesize和id一、@property@synthesize关键字注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明和实现。(一)@property关键字@property关键字可以自动生成某个成员变量的setter和get...
阅读全文
摘要:答: init中调用super的init方法来初始化自己所包含有的父类信息1.内存分配 内存应该在[Class alloc]的时候就已经分配了,大小和类型应该由对应的Class来决定。而init方法只是进行对象内部各种变量的初始化,同时将retain count加一,表示目前这块内存空间有人在...
阅读全文
摘要:OC点语法和变量作用域一、点语法(一)认识点语法声明一个Person类: 1 #import 2 3 @interface Person : NSObject 4 { 5 int _age;//默认为@protected 6 } 7 8 - (void)setAge:(int)age;...
阅读全文
摘要:OC面向对象—多态一、基本概念多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。在使用多态是,会进行动态检测,以调用真实的对象方法。多态在代码中的体现即父类指针指向子类对象。Animal类的声明Animal类的实现Dog类继承自Animal类Dog类的实现测试程序:二、使用注意代码...
阅读全文
摘要:UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]]; // 会缓存图片UIImageView *imageView= [[UIImageView alloc] in...
阅读全文
摘要:一、基本概念程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量)。在这里动物是猫类和狗类的父类,黑猫和白猫类是猫类的子类。继承的好处:(1)抽取出了重复的代码(2)建立了类和类之间的联系继...
阅读全文
摘要:一、面向对象和封装面向对象的三大特性:封装(成员变量)、继承和多态在OC语言中,使用@interface和@implementation来处理类。@interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起...
阅读全文
摘要:一、基本原理(一)为什么要进行内存管理。 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。管理范围:任何继承NSObject的对象,对其他的基本数据类...
阅读全文
摘要:有时候我们重写父类的init方法时不注意将init后面的第一个字母写成了小写,在这个方法里面又调用父类的初始化方法(self = [super init];)时会报错,错误信息如下:error:Cannot assign to 'self' outside of a method in the in...
阅读全文
摘要:一、OC方法(一)对象方法(1)对象方法以-开头如-(void)xx;(2)对象方法只能又对象来调用(3)对象方法中可以访问当前对象的成员变量(4)调用格式[对象名对象方法名];(5)设计一个学生类和狗类,练习对象方法的使用。学生类的声明:学生类的实现:狗类的声明:狗类的实现:主程序:(二)类方法(...
阅读全文
摘要:一、面向对象OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类。术语:OO面向对象、OOP面向对象编程二、类(一)关于类类的设计只关注三个东西:类名、属性和方法注意:一般名词都是...
阅读全文
摘要:一、OC简介Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码。可以使用OC开发macosx平台和ios平台的应用程序。拓展名:c语言-.cOC语言.-m兼容C++.-mm注:其实c语言和oc甚至任何一门语言都只是我们为了实现一些功能,...
阅读全文
摘要:Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与...
阅读全文
摘要:bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别...
阅读全文
摘要:Objective-C的推荐init方法写法如下:- (id) init{ if(self = [super init]) { //为子类增加属性进行初始化 } return self;}返回值为id类型,id类型可以赋值给其他类型指针,其他类型指针也可以赋值给...
阅读全文
摘要:[plain]view plaincopyprint?- (id)init {self = [super init]; // Call a designated initializer here.if (self != nil) {// 省略其他细节}return self;}容易让人困惑的地方在于...
阅读全文
摘要:在上一篇文章iOS学习笔记02——以编码的方式实现Auto Layout自动布局(一)中我们简单的介绍了使用Visual Format Language创建布局约束来实现自动布局,这种方法创建的布局约束能够满足大部分的布局的需求。但是想要实现类似于这样的约束:button.width = 2 * b...
阅读全文
摘要:Auto Layout是在WWDC2012上被引入到iOS中的,从iOS6.0以后就开始支持,但是大多数的开发者还是习惯使用传统的UI布局方式,虽然有一大部分开发者早已使用了Auto Layout,这其中大多数的开发者是在拖拽IB文件或者是使用StoryBoard时才会选择用Auto Layout的...
阅读全文
摘要:iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它来简化CFNetwork的调用,它提供了异步操作主要特性有: 队列的非阻塞的读和写,而且可选超时。你可以调用它读取和写入,它会当完成后告知你自动的socket接收。如果你调用它接收连接,...
阅读全文
摘要:目前为止,即使你的界面设计是在合理的复杂度内,你也必须要为之写许多代码来适应变化的布局。现在我相信你会很高兴听到这种情况将不会发生了-对于iPhone与iPad IOS6 带来了一个非常了不起的特征:自动布局。自动布局不仅能给你的应用带来各种屏幕尺寸设计的支持,做为额外的惊喜,它还能使设计中的各种小...
阅读全文
摘要:1.NSLog回顾众所周知,我们可以用NSLog函数来输出字符串和一些基本数据类1 int age = 11;2 NSLog(@"age is %i", age);* 第2行的%i代表会输出一个整型数据,右边的变量age会代替%i的位置进行输出* 输出结果:2013-04-19 21:43:47.6...
阅读全文