本节目录
- storyboard文件的认识
- UIViewController
- IBAction
- IBOutlet
- 关于IBAcion和iBOutlet前缀IB的解释
- 类拓展
- 常见的错误
- 模拟器常见功能
- UIView的常见属性-父子控件,常见属性,位置尺寸
storyboard文件的认识
- 作用:描述软件界面
- 应用程序的启动原理:(1)当应用程序启动的时候,首先会加载一个storyboard (2)加载storyboard里面的控制器:箭头所指向的控制器(3)控制器会创建(加载)一个属于控制器的view
- 配置程序一启动就会加载Main.storyboard文件
UIViewController
- 概念:凡是继承自UIViewController的对象,都叫做控制器
- 注意:每一个控制器都会专门管理一个软件界面
- 作用:负责处理软件界面的各种事件,并负责软件界面的创建和销毁
IBAction
- 只能修饰方法返回值类型
- 被IBAction修饰的方法:(1)能拖线到storyboard中(2)能拖线到storyboard中
使用格式:
-(IBAction)butnClick{}
IBOutlet
- 只能修饰属性
- 被IBOutlet修饰的属性能拖线到storyboard中
- @property(nonatomic, weak)IBOutlet UILabel *label
关于IBAction和IBOutlet前缀IB的解释
- IB全称:Interface Builder
- 以前UI界面开发模式:Xcode + Interface Builder
- 从Xcode4开始,Interface Builder已经整合到Xcode中
类扩展
- 作用:能为某个类增加额外的属性,成员变量,方法声明
- 一般将类扩展写到.m文件中
- 使用格式
@interface 类名() /*属性,成员变量、方法声明*/@end
- 与分类的区别
(1)分类的小括号必须有名字
@interface 类名(名) /*方法声明*/@end
@implementation 类名(名) /*方法声明*/@end
(2)分类只能扩充方法
(3)如果在分类中声明了一个属性,分类只会生成这个属性的get\set方法的声明,不会有实现
常见的错误
错误1:
this class is not key value coding-compliant for the key lable
- 原因:属性代码被删掉了,但是属性连线还在/
- 解决:删除多余的连线
- 错误2:
unrecongnized selector sent to instance ******
- 原因:调用了一个不存在的方法/
- 解决:认真检查方法名,使用正确且存在的方法名
模拟器常见功能
- 横竖屏的使用
- 回桌面
UIView的常见属性-父子控件,常见属性,位置尺寸
父子控件
- 01-每个控件都是个容器,能容纳其他控件
- 02-内部小控件是大控件的子控件
- 03-大控件是内部小控件的父控件
- 04-每一个控制器(UIViewController)内部都有个默认的UIView属性
常见属性
@property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArray *subviews; 获得自己的所有子控件对象 @property(nonatomic) NSInteger tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件 @property(nonatomic) CGAffineTransform transform; 控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)
常见方法
- (void)addSubview:(UIView *)view; 添加一个子控件view - (void)removeFromSuperview; 从父控件中移除 - (UIView *)viewWithTag:(NSInteger)tag; 根据一个tag标识找出对应的控件(一般都是子控件)
位置和尺寸
@property(nonatomic) CGRect frame; 控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点) @property(nonatomic) CGRect bounds; 控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0) @property(nonatomic) CGPoint center; 控件中点的位置(以父控件的左上角为坐标原点)
- UIKit坐标系
在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸