iOS模拟器启动过程
- 在Deployment Info的Main Interface中跳转到Main.storyboard
Main.storyboard(故事板)跳转至Storyboard Enter Point指向的View
Controller 并加载其中View中的控件
View Controller 中的控件与ViewController.m中的代码块进行关联
有3种方式:
- 方式一:在ViewController.m先编写好代码
-(IBAction)changeSize{
}
则在行数的后面产生一个可以与Main.storyboard控件连接的小圆点
方式二:右键Main.storyboard控件,在弹出的ConnectionsInspector(连接检查器)窗口找到对应的动作属性与ViewController.m中的代码块进行关联 例如:
方法三(推荐方法):在Main.storyboard中,按住control + 拖动控件到ViewController.m 可以创建与之关联的代码 例如:
以上方法均可以关联属性和方法
一些UIView的常见方法
- 修改颜色
-(IBAction)changeColor:(id)sender{
self.label.textColor = [UIColor redColor];
}
- 改变大小
-(IBAction)changeBig:(id)sender {
self.label.font = [UIFont systemFontOfSize:40.f];
CGPoint p = self.redUIView.center;
p.y += 100;
p.x += 100;
self.redUIView.center = p;
}
- 改变位置
-(IBAction)changeLocation:(id)sender{
self.label.textAlignment = NSTextAlignmentCenter;
self.label.center = CGPointMake(self.view.frame.size.width *0.5, self.view.frame.size.height *0.5);
}
- 改变内容
- (IBAction)changetext {
self.label.text = @"Thank u,jobs";
}
UIView 尺寸和位置
- frame方法
frame是CGRect类型定义的结构体,可以改变指定控件的位置和尺寸,前面两个修改位置,后面两个修改尺寸
- (IBAction)frame:(id)sender {
self.label.frame = (CGRect){{100,100},{100,100}};
}
- bounds方法
bounds方法同样是CGRect类型定义的结构体,不同的是bounds可以改变指定控件的尺寸而不能修改控件的位置
- (IBAction)bounds {
self.label.bounds = CGRectMake(0, 0 , 150, 300);
- center方法
center方法是CGPoint类型定义的结构体,与bounds方法相反,可以修改指定控件的位置而不能修改其代销
- (IBAction)center:(id)sender {
CGPoint p = self.label.center;
p.x += 50;
self.label.center = p;
}
父控件和子控件
例如在ViewController中View中的所有控件的父控件就是View,View中还可以添加UIView,添加的UIView的父控件就是View,而View父控件是UIWindow.可以往新添加的UIView添加子控件
如上图中,View的子控件是Lable,changeBig…..RedUI View 等等
而RedUI View中还有一个子控件Label
UIView常见的属性和方法
- 查看某控件的所有子控件
@property(nonatomic,readonly) UIView *superview;
NSLog(@"%@",[self.superview subviews]);
- 查看某控件的父控件
@property(nonatomic,readonly) UIView *superview;
NSLog(@"%@",[self.superview superview]);
- 控件的ID(标识),父控件可以通过tag来找到对应的子控件
UIView *sv = [UIView alloc]initWithTag:1];
- 添加一个子控件
UISwitch *bt = [[UISwitch alloc]init];
[self.redUIView addSubview:bt];
- 将自己从父控件中移除
- (IBAction)remove {
[self.redUIView removeFromSuperview];
}