自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诠释完美

见贤思齐焉,见不贤而内自省也。

  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 iOS的屏幕适配之Autoresizing、Autolayout、VFL、Masonry

屏幕适配 iPhone4S之前没有屏幕适配,因为屏幕尺寸不变,全部用frame、bounds、center进行布局。 iphone5之后才开始有屏幕适配。Autoresizing iPad的出现和iPhone横屏的出现,出现Autoresizing技术 Autoresizing让横竖屏适配相对于用frame、bounds、center进行布局简单 使用Autores

2016-07-23 10:35:25 1784

原创 纯代码封装自定义View和XIB封装自定义View的区别

一、背景 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不让外界关心, 外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应的数据二、纯代码封装View1.封装控件的基本步骤 (1).在initWithFrame:方法中添加子控件,提供便利构造方法 (2).在layoutSubviews方法中设置子控件

2016-07-20 11:20:31 2246 1

原创 UIScrollView

一、背景 1.移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限 2.当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容 3.普通的UIView不具备滚动功能,不适合显示过多的内容二、作用 UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容三、使用方法 1.创建UIScrollView

2016-07-19 18:43:29 534

原创 Plist文件、HUD、字典转模型、纯代码封装View、XIB封装View

一、Plist文件 属性列表文件,是一个xml文档 1.能直接存储数据类型:Dictionary、Array、Boolean、Data、Date、Number、String 2.其他类型要存储,必须先进行装化再存储,比如如果把UIView对象存入数组再存入Plist文件,虽然不报错,但是是错误的。 3.NSBundle (1).一个NSBundle对象对应一个资源包(图片、音频、视频、pl

2016-07-17 21:16:38 690

原创 九宫格的计算

说明: (1).黄色框代表父控件 (2).红色方块代表子控件 (3).绿色框代表列宽 (4).蓝色框代表行高 (5).0-8数字代表索引九宫格的计算方式: (1).自定义一些变量 列数 = 自定义 子控件宽 = 自定义 子控件高 = 自定义 (2).计算列宽和行高 列宽 = (父控件的宽 - 子控件宽 * 列数) / (列数 - 1) 行高 = 自定义 (3

2016-07-17 20:09:10 2794

原创 storyBoard和控制器的连线

一、属性的连线 1.方法一 在控制器的小圈上,按住Ctr,往需要连线的控件上,但要先写好属性 2.方法二 与方法一类似,也要先写好属性 3.方法三 按住Ctrl,在控件上,把线拖到写好的属性上 4.方法四 把属性前面的小圈拖到对应的控件上,注意不用按Ctrl 5.方法五 二、方法的连线 与属性的连线类似,但是属性的连线方法一和方法二在方法的连线不适用,只能用三、四、

2016-07-16 21:37:19 3574

原创 Xcode创建iOS项目基本操作

1.欢迎界面,如果欢迎界面不显示了,可能是你把界面上的小勾去掉了 2.找回欢迎界面,在菜单栏的Window设置,如图 3.进入创建界面,有两个方法 (1).方法一 (2).方法二 4.创建项目 (1).在iOS的栏上单击,选择只新建一个界面的工程 (2).填写项目信息 (3).选择存储位置后完成创建 5.查看项目的信息 6.查看项目的文件 有时候我们发现项目的左边显

2016-07-16 19:08:15 1671

原创 NSFileManager的简单应用

NSFileManager是一个单例类,用于管理文件和文件夹的。 下面代码是NSFileManager的简单应用: //1.defaultManager是创建一个单例对象 NSFileManager *manager = [NSFileManager defaultManager]; //2.判断文件或者文件夹是否存在 NSString *path = @"/Users

2016-07-14 15:27:57 616

原创 NSDate和NSCalendar的简单应用

1.NSDate:用于创建时间对象 2.NSTimeZone :用于创建时区对象 3.NSDateFormatter:用于创建时间格式化对象 4.NSCalendar:用于创建日历类 //只要是通过date方法创建的时间对象, 对象中就保存了当前的时间 NSDate *now = [NSDate date]; NSLog(@"%@",now); //在now

2016-07-14 14:42:46 539

原创 NSNumber与NSValue的基本使用

要把C语言的数值和结构体添加到OC集合中,就必须先包装成对象。 一、NSNumber:用于把C语言的数值型包装成对象 //把C语言的数值型包装成对象 NSNumber *number1 = [NSNumber numberWithBool:YES]; NSNumber *number2 = [NSNumber numberWithChar:'A']; NSNumber

2016-07-14 11:02:22 524

原创 集合(数组/字典/集)的内存管理

Foundation framework中用于收集cocoa对象的集合有:NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet、NSMutableSet等 1.将一个对象添加到一个数组中, 那么数组会对对象进行一个retain 2.当数组移除一个对象之后, 会给这个对象发送一条release消息 3.当数组对象释放之后, 会

2016-07-14 10:16:10 1013

原创 NSDictionary与NSMutableDictionary的应用小结

一、NSDictionary(不可变字典) 1.只能存储对象,第一次存入对象以后就不能再作修改 2.字典是无序的,也就是说存入字典的元素顺序不是它在内存里面的真实顺序,属于链表存储 3.字典初始化 //键值和对象分别存入不同数组 NSDictionary *dit0 = [[NSDictionary alloc] initWithObjects:@[@"A",@"B"]

2016-07-14 09:24:41 741

原创 NSArray与NSMutableArray的应用小结

一、NSArray(不可变数组) 1.只能储存Objective-C对象,不能存储C语言基本数据类型,要存储C语言基本数据类型要通过NSNumber类包装成对象,要存储结构体要通过NSValue包装成对象,才可进行存储 2.数组以nil结尾,代表结束,相当于C语言字符串的’\0’ 3.数组的创建与初始化 //创建一个空的不可变数组,该数组不能添加对象,大小为0 NSArray *

2016-07-13 21:24:16 797

原创 NSString与NSMutableString的应用小结

一、NSString 1.见名知意,Objective-C中字符串是一个对象,NSString是用于储存字符串对象的。 2.字符长度 (1).NSString类型,长度用length计算,中英文(包括各类符号)都各自只占一个字节。 (2).在Xcode中C语言中一个汉字(包括各类符号)占3个字节,英文(包括各类符号)占一个字节。 3.通过不同的方式创建OC字符串,字符串的存储位置也不一

2016-07-12 20:00:18 616

原创 单粒模式

一、singleton(单例) 作用:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 下面用Tools类举例单例类的创建----------Tools.h文件#import @interface Tools : NSObjectNSCopying, NSMutableCopying>// 一般情况下创建一个单例对象都有一个与之对应的类方法// 一般情况下用于创建单例

2016-07-09 16:28:31 878

原创 Objective-C——深复制和浅复制

一、深复制和浅复制 1.只要是拷贝出来的对象, 拷贝出来的对象中的内容和以前对象中的内容一致。 2.什么时候生成新的对象,什么时候不生成新对象? (1).生成新对象:拷贝出来的对象和以前的对象,只要两者中有一个是可变的对象,就必须要生成新的对象 (2).不生成新对象:拷贝出来的对象和以前的对象,只要两者都是不可变的对象,就不用生成新的对象 3.正是因为调用copy方法有时候会生成一个新的

2016-07-09 09:46:11 701

原创 Objective-C——Category、Extension、Protocol

一、Category 1.不同的翻译名称:分类、类别、类目(一般叫分类) 2.分类是Objective-C特有的语法,其他语言没有。 3.作用 (1).可以不用修改一个类的基础上扩充这个类 (2).一个庞大的类可以分模块开发,可以有多人开发,方便团队合作 4.注意 (1).只能增加方法,不能增加成员变量 (2).在分类中使用@property只会生成方法声明 (3).分类可以访问

2016-07-08 17:21:51 1047

原创 new方法的实现原理、构造方法、类工厂方法、instancetype和id

一、new方法的实现原理 1.开辟存储空间,调用 + alloc 方法 2.初始化所有的属性(成员变量),调用 - init 方法 3.返回对象的地址 注意: alloc返回的地址, 和init返回的地址是同一个地址 二、alloc做了什么? 1.开辟存储空间 2.将所有的属性设置为0 3.返回当前实例对象的地址 三、init做了什么? 1.初始化成员变量, 但是默认情况下

2016-07-07 23:06:58 745

原创 Objective-C——类的本质

一、假如定义下面类两个类: 1.Person类 @interface person : NSObject - (void)eat; + (void)sleep; @end @implementation person - (void)eat { } + (void)sleep { } @end 2.学生类Student,学生类继承Person类 @interface Stud

2016-07-07 22:20:42 1902

原创 Objective-C——Block的使用

一、Block类型和函数指针的比较 1.无参无返回值 (1).先定义一个打印花的函数 void hua() { printf(” {@}\n”); printf(” |\n”); printf(” \|/\n”); printf(” |\n”); } (2).比较 a.直接调用函数 hua(); b.定义函数指针 void (

2016-07-07 18:41:17 705

原创 Objective-C——基础3

一、操作引用计数器的方式: 1:retainCount:获得对象的引用计数器的值 2:retain:能够让对象的计数器值+1 3:release:让对象的计数器值 - 1 二、怎么判断对象被释放? 1.dealloc方法:只要调用了这个方法,就代表对象即将被释放. 2.重写dealloc方法,必须在最后添加上 [super dealloc]; 3.当计数器值为0时会自动调用deallo

2016-07-06 21:39:28 619

原创 Objective-C——基础2

一、Objective-C@的用法 1、Objective-C的关键字都以@开头。 2、其他作用 @[ ] 创建不可变数组 @{ } 创建不可变字典, @( ) 能把常量或变量变成字面对象 二、预编译指令 作用:对代码的分组,方便代码查找和导航 @pragma mark 标识符 @pragma mark - 三、OC中的三种注释: 1、单行注释: //我是注释的内容 2

2016-07-06 21:36:30 667

删除文件:提示找不到该项目

win7系统上文件删除不了,删除的时候弹出提示“找不到该项目”,该资源就可以有效的出来此问题,快速的删除此文件。

2016-04-27

判断自己的BIOS为SLIC 2.0还是2.1

判断自己的BIOS为SLIC 2.0还是2.1 尽管目前Windows 7 OEM的软件模拟破解已经出现,但对于某些用户而言,还是想要通过正常的OEM渠道来激活,此时,就必须满足如下三个条件: 尽管目前Windows 7 OEM的软件模拟破解已经出现,但对于某些用户而言,还是想要通过正常的OEM渠道来激活,此时,就必须满足如下三个条件: * BIOS中有完整SLIC 2.1表 * OEM厂商的证书 * OEM-SLP的产品密钥 那么,如何判断自己的SLIC表是否是2.1版本的呢? 这个资源包就可以满足你的要求。

2016-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除