控制器
继承自UIViewController—UI界面的大管家:管理UI元素的各种事件,点击事件
- 一个控制器负责管理一个大界面
- 控制器负责界面大创建、事件处理......
UIView
- 控件:屏幕上的所有Ui元素都叫做控件(视图,组件),比如按钮(UIButton),文本(UILable)
- 控件都共同属性:尺寸,位置,背景......
- 苹果将控件的共同属性都抽取到父类UIView中
- 所有的控件最终继承父类UIView
UIButton
- 默认是system,灰色,改成Custom就可以自定义高亮图片
控制器大view加载完毕时调用
- (void)viewDidLoad
{
[super viewDidLoad];
UIView是最纯洁最干净的控件,仅仅是做容器就用UIView
UIView常见属性:
- @property(nonatomic,strong) IBOutlet NSArray** *subviews;
// 获得自己的所有子控件对象
- @property(nonatomic,strong) IBOutlet UIView *superview;
// 获得自己的父控件对象
- @property(nonatomic,strong) IBOutlet NSInteger tag;
控件的ID(标识),父控件可以通过tag来找到对应的子控件
[self.view viewWithTag:99] removeFromSuperview];
如果view为99,则返回自己,把自己删除
@property(nonatomic,strong) IBOutlet CGRect frame;
控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
@property(nonatomic,strong) IBOutlet CGAffineTransform transform;
@property(nonatomic,strong) IBOutlet CGRect bounds;
以自己的左上角为坐标原点(所以x,y都是0)
@property(nonatomic,strong) IBOutlet CGPointd center;
以控件中点位置在以父控件的左上角为原点的位置
常见方法
>>>常用方法
- addSubview:,**增加控件**
removeFromSuperview;**从父类中删除某控件**
insertSubview:() atIndex:() **根据索引插入某控件**
above:**在谁上面**
blow:**在谁下面**
**将子控件view插入到subviews数组到index到位置**
- (void)insertSubview:(UIView *)view
atIndex:(NSIneager)index;
**将子控件view放到数组的最后面,显示在最上面**
- (void)bringSubviewToFront:(UIView *)view;
**将子控件view放到数组的最前面,显示在最下面**
- (void)sendSubviewToBack:(UIView *)view;
**打印view的xy尺寸的信息**
NSlog(@"%@",NSStringFromCGRect(self.view.frame));
- UIButton :按钮,既能显示图片,也能显示文字,还能随时调整内部图片和文字的位置
类扩展
- 分类:可以为某个方法增加一些额外的方法
@interFace ViewController(Highclass)
- (void)run;
@end
@implementiong ViewController(Highclass)
- (void)run
{
}
@end
- 类扩展:也可以为某个类增加一些额外的属性和方法
- 可以放在.h或.m文件中
- 作用:存放类的私有属性
@interFace ViewController()
@property (nonatomic,strong) IBOutlet UILabel *label;
@end
storyboard的认识
- 用来描述软件界面
- 默认情况下,程序启动就会加载main.storyboard
- 加载storyboard 时,会首先创建和实现箭头所指的控制器面板
IBAction、IBOutlet
- IBAction:
- 本质是void
- 能让方法具备连线的功能
- IBOutlet:
- 能让属性具备连线的功能
storyboard练习容易出现的问题
- 被链接的代码被删掉,但连线的代码没去掉
- 可能出现方法找不到的错误
- unrecognized selector sent to
- 被链接的属性被删掉,但连线的代码没去掉
- 可能出现方法找不到的错误
- setValue:forUndefinedKey:this class is not key value coding-compliant for the key