第一天
Xcode 的认识
- Tool Bar
- Run、Stop Run
- 要运行的APP、Simulator的型号和版本
- 编辑器区域、辅助编辑器、版本编辑器
- 显示隐藏板块
- Navigator:common + (12345678)
- Project Navigator
- 项目名(文件夹虚拟出来的,为了有逻辑)
- 项目命名文件夹
- Supporting Flies
- Products
- Symbol Navigator
- Find Navigator
- Issues Navigator
- Test Navigator
- Debug Navigator
- Breakpoint Navigator
- Report Navigator
- Jump Bar
- Utilities:control + option + common + (123456)
- File Inspector
- Quick Help Inspector
- Indentity Inspector
- Attributes Inspector
- Size Inspector
- Connecting Instpector
- IB
- 新的编译器和调试器
storyboard文件的认识
- 用来描述软件界面
- 默认情况下,程序一启动就会加载Main.storyboard
- 加载storyboard时,会首先创建和显示箭头所指的控制器界面
- View Controller Scene
- View Controller
- View:UIView的一个实例
- First Responder
- Exit
## 资源库:option + common + (1234)
- File Template Library
- Code Snippet Library
- Object Library
- Media Libary
IBAction和IBOutlet
storyboard连线容易出现的问题
- 连接的方法代码被删掉,但是连线没有去掉
- 可能会出现方法找不到错误
- unrecognized selector sent to instance
- 连接的属性代码被删掉,但是连线没有去掉
- setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key
UIViewController(控制器)的认识
- 一个控制器负责管理一个大界面
- 控制器负责界面的创建、事件处理等
pragma mark
- 标识注释方法,使在跳选栏中更为美观清晰
- /* 注释 / :使在使用的时候有提示这个是干什么的
类扩展
@interface 类名()
/** 属性、方法的声明 */
@end
- 作用
- 为某个类增加额外的属性和方法声明
- 可以写在.h和.m文件中
项目属性
- Product Name
- Organization Name
- Organization Identifier
- 公司的唯一标识
- 一般是公司域名的反写,比如com.520it
- Bundle Identifier
- 软件的唯一标识
- 一般是Organization Identifier + Product Name
UIView的常见属性
- NSArray *subviews
- 所有的子控件
- 数组元素的顺序决定着子控件的显示层级顺序(下标越大的,越显示在上面)
UIView的常见方法
- addSubview:
- 添加一个子控件
- 使用这个方法添加的子控件会被塞到subviews数组的最后面
- 可以使用下面的方法调整子控件在subview数组中的顺序
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
- (void)bringSubviewToFront:(UIView *)view;
- (void)sendSubviewToBack:(UIView *)view;
错集
1
#pragma mark 添加按钮
- (UIButton *)addButtonWithImage:(NSString *)image,highImage:(NSString *)highImage, disableImage:(NSString *)disableImage, frame:(CGRect)frame, action:(SEL)action
{
UIButton *btn = [[UIButton alloc] init];
[btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
[btn setBackgroundImage:[UIImage imageNamed:disableImage] forState:UIControlStateDisabled];
}
2
类的属性声明是不为成员变量创建内存空间的,在实现的时候,要仔细看有没有创建为他创建分配空间