摘要: 需求 1.以N宫格的形式展示应用信息 2.APP信息包括图标、名字、下载按钮 3.使用尽可能少的代码,从plist读取app信息,计算每个app图标的位置尺寸信息 A.思路 1.UI布局:N宫格 2.事件监听 3.动态添加 (by plist) 4.整体封装,组合每个应用信息,使用View的层级包装帮助布局 B.实现 (使用纯代码方式) 1 // 2 // View... 阅读全文
posted @ 2014-11-24 22:04 HelloVoidWorld 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 1.NSBundle1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹2> 利用mainBundle就可以访问软件资源包中的任何资源3> 模拟器应用程序的安装路径/Users/aplle/资源库/Application Support/iPhone Simulator/... 阅读全文
posted @ 2014-11-24 22:02 HelloVoidWorld 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 需求: 1.点击按钮播放相应动画 2.点击汤姆猫身体部分(头、脚、尾巴)显示动画 3.当前正在播放动画不可触发其他动画 4.优化缓存、内存管理 A.序列帧动画 #1. png格式的文件可以不带扩展名访问,而且可以放到”Images.scassets”的组中预览,jpg只能放到support file中了,而且访问的时候要写上扩展名 #2. 在ViewController中的属性... 阅读全文
posted @ 2014-11-24 22:01 HelloVoidWorld 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 需求: 1.显示当前图片序号/总图片数 2.显示图片 3.上一张图片、下一张图片转换 4.显示图片描述 A.数据的加载方式 1.逐个加载、处理 2.使用数组、字典分离数据和逻辑 3.延迟加载 将初始化放在getter初始化,当需要的数据不存在才初始化 4.使用plist 存储数据在外部文件,剥离数据和逻辑代码 不要使用带”info”的名字,会跟系统文件混... 阅读全文
posted @ 2014-11-24 21:53 HelloVoidWorld 阅读(399) 评论(1) 推荐(0) 编辑
摘要: A.概念 可以控制UIView的位置、尺寸、旋转 transform是一种状态,每次都是相对于原始状态作出的形变 1.位置移动 1 // 向上移动 2 - (IBAction)top:(UIButton *)sender { 3 // 1.transform是相对于初始状态的一种状态,但是其实self.head.frame.origin的值已经被改变了 4 // sel... 阅读全文
posted @ 2014-11-24 21:50 HelloVoidWorld 阅读(316) 评论(1) 推荐(0) 编辑
摘要: A.storyboard 控件版 1.label 2.textfield a.Keyboard Type 账号:Number Pad 密码:Number and Punctuation b.Placeholder:提示文字 c.Clear Button: Appears with editing 清除按钮 d.... 阅读全文
posted @ 2014-11-24 21:48 HelloVoidWorld 阅读(695) 评论(1) 推荐(0) 编辑
摘要: UIButton A.素材准备 1.图片素材放置到Images.xcassets中 B.按钮状态 1.normal:默认状态 Default 对应的枚举常量:UIControlStateNormal 2.highlighted(高亮状态) 按钮被按下去的时候(未松开) 对应的枚举常量:UIControlStateHighlighted 3.disabled(失效状态,不可用状态)... 阅读全文
posted @ 2014-11-24 21:44 HelloVoidWorld 阅读(423) 评论(1) 推荐(0) 编辑
摘要: A. UIView1.概念属于UIKit框架屏幕上能看得见摸得着的东西就是UIView,比如屏幕上的按钮、文字、图片翻译为:视图/控件/组件UIButton、UILable、UITextField都继承自UIView每一个UIView都是一个容器,能容纳其他UIView2.父控件和子控件父控件:容纳... 阅读全文
posted @ 2014-11-24 21:42 HelloVoidWorld 阅读(406) 评论(1) 推荐(2) 编辑
摘要: A. 目录管理 1 NSFileManager*manager = [NSFileManagerdefaultManager];//单例模式 2 3 // 1.获取文件属性 4 NSString *path = @"/Users/hellovoidw... 阅读全文
posted @ 2014-11-24 19:24 HelloVoidWorld 阅读(292) 评论(0) 推荐(0) 编辑
摘要: A.集合的手动内存管理NSArrayaddObject: 加入的元素执行一次retainremoveObject: 被删除的元素执行一次releaseremoveAllObjects: 所有元素执行一次releaseB.ARC机制集合内存分析当一个对象被放入集合中时,会保存它的强指针当一个对象被从集... 阅读全文
posted @ 2014-11-24 19:23 HelloVoidWorld 阅读(210) 评论(0) 推荐(0) 编辑
摘要: A.NSSet跟NSArray一样,不可变NSArray 自然顺序NSSet是无序的NSSet不允许存入重复元素,可以用来过滤重复元素也有可变的NSMutableSetB.集合转换 1 // 1.NSArray 转换成 NSMutableArray 2 NSArray *ar... 阅读全文
posted @ 2014-11-24 19:22 HelloVoidWorld 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 注意:1.变量名和函数名不要混淆调用2.不要对文件夹进行文件的操作,没有权限3.递归调用注意初始化变量 1 // 2 // main.m 3 // CodeLineCount 4 // 5 // Created by hellovoidworld on 14-11-18. 6 // Copy... 阅读全文
posted @ 2014-11-24 19:21 HelloVoidWorld 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 使用Class来创建实例1 // 18.通过@"Ball"创建一个Ball实例(不可以使用[[Ball alloc] init]创建)2 NSString *className = @"Ball";3 Class class = NSClassFrom... 阅读全文
posted @ 2014-11-24 19:20 HelloVoidWorld 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1.没有权限读取文件夹The file “Homework2” couldn’t be opened because you don’t have permission to view it.—>不能对文件夹进行文件的操作,例如读取文件内容2.C函数运行时链接错误变量名和函数名混淆使用了,导致调用错... 阅读全文
posted @ 2014-11-24 19:20 HelloVoidWorld 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 一个对象使用copy或mutableCopy方法可以创建对象的副本1.copy需要实现NSCopying协议创建出来的是不可变副本,如NSString, NSArray, NSDictionary(1)不可变对象调用copy (NSSring除外)不会产生新的对象,而是返回对象本身,相当于retai... 阅读全文
posted @ 2014-11-24 19:19 HelloVoidWorld 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 1.判断某个对象是否属于一个类1 Student *stu = [[[Student alloc] init] autorelease];2 BOOL result= [stu isKindOfClass:[Person class]];3 NSLog... 阅读全文
posted @ 2014-11-24 19:18 HelloVoidWorld 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 日期处理类定义时间间隔计算时间比较,返回其一时间格式化 1 void dateCreate() 2 { 3 //date return current time 4 NSDate *date = [NSDate date]; 5 NSLog(@"%@", date); 6 ... 阅读全文
posted @ 2014-11-24 19:17 HelloVoidWorld 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 在NSDictionary中,nil代表结束,允许存入使用NSNull代替 1 int main(int argc, const char * argv[]) { 2 @autoreleasepool { 3 NSNull *n = [NSNull null]; 4 ... 阅读全文
posted @ 2014-11-24 19:16 HelloVoidWorld 阅读(156) 评论(0) 推荐(0) 编辑
摘要: NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue包装结构体成OC对象1.自带结构体 1 void value() 2 { 3 CGPoint point = CGPointMake(10, 10); 4 NSValue *obj = [NSValue va... 阅读全文
posted @ 2014-11-24 19:15 HelloVoidWorld 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1.概念NSArray,NSDictionary只能放OC对象,不能放入基本数据类型必须使用包装类NSNumber,把基本数据类型包装成OC对象不支持自动包装解包 1 void number() 2 { 3 NSNumber *number = [NSNumber numberWithInt... 阅读全文
posted @ 2014-11-24 19:14 HelloVoidWorld 阅读(185) 评论(0) 推荐(0) 编辑