storyboard的认识
- 用来描述软件界面
- 默认情况下,程序一启动就会加载Main.storyboard
- 加载storyboard时,会首先创建和显示箭头所指的控制器界面
IBAction和IBOutlet
- IBAction
- 本质就是void
- 能让方法具备连线的功能
- IBOutlet
- 能让属性具备连线的功能
storyboard连线出现的问题
- 被连接的方法代码被删掉,但是连线没有去掉
-可能会出现方法找不到错误
-出现unrecongized selector sent to instance - 被连接的属性被删掉,但是连线没有删掉
-可能会出现方法找不到错误
-setValue:forUndefinedKey:]:this class is not key value coding-compliant for the key XXX
UIViewController(控制器)的认识
- 一个控制器负责管理一个大界面
- 控制器负责界面的创建事件处理等
类扩展
- 格式
@interface 类名()
/** 属性,方法的声明*/
@end
- 作用
- 为某个类增加额外的属性和方法的声明
- 可以写在.h和.m文件中
九宫格计算思路
- 利用控件的索引index计算出控件所在的行号和列号
- 利用列号计算控件的x值
- 利用行号计算控件的y值
HUD
- 指示器,遮盖,蒙版
- 半透明
- 背景色设置为半透明颜色
定时任务
- 方法1 performSelector
// 1.5s后 自动调用 SEL 方法
[self performSelector:SEL withObject:nil afterDelay:时间];
- 方法2 GCD
// 多线程
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(时间 * NSEC_PER_SEC)), dispatch_get_main_queue(),^{
//1.5s后自动这行这个block里面的代码
})
- 方法3 NSTimer
// 1.5s后 自动调用 SEL 方法
[NSTimer scheduledTimerWithTimeInterval: 时间 target:self selector:SEL userInfo:nil repeats:NO];
// repeats如果为YES,意味着每隔1.5s后重复调用
## 常见问题
- 项目里面的某个.m文件无法使用 这个报错的,报错显示的结果就是这个原因,所以我们要这样操作
- 检查:Build Phases -> Compile Source
- 项目里面的某个资源文件(比如:plist,音频等)无法使用
- 检查:Build Phases -> Copy Bundle Resources
模型
- 什么是模型?
- 专门用来存放数据的对象
- 一遍都是一些直接集成NSObject的春对象
- 内部会提供一些属性存放数据
一个空间看不见有哪些可能
- 宽度或者高度其实为0
- 位置不对(比如是个负数或者超大的数,已经超出屏幕)
- hidden == YES
- alpha <= 0.01
- 没有设置背景色,没有设置内容
- 可能是文字颜色和背景色一样
layoutSubviews (必须掌握其用法)
- 这个方法是专门用来布局子控件,一般在这里设置子控件的frame
- 当控件本身的尺寸发生改变的时候,系统会自动调用这个方法