目录:ios
1、视图和控制器xcode
回到顶部编辑器
1、视图和控制器ide
1 视图(view)ios程序运行期间用户所能看见的东西均可以认为是视图,好比UIwindow就是一个视图类。函数
* 全部视图类都直接间接的继承UIView工具
* 控件是能够和用户交互的视图对象,通常会继承自UIConller类,UIButton、UILable字体
2 控制器(contoller)控制视图显示的对象叫控制器,一般叫视图控制器。ui
* 全部的视图控制器都是直接或间接继承自UIViewController类spa
* 建立本身的控制器,定义一个类,继承自UIViewController
步骤:
*1 建立一个控制器MXViewController在MXViewController.m文件中重写viewDidLoad
- (void)viewDidLoad
{
//建立控件
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 40)];
//设置属性
label.text = @"hello word!!!";
//加入父视图中
[self.view addSubview:label];
}
*2 在MXAppDelegate.m文件中写application:函数具体以下:
#import "MXViewController.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
//建立类控件
MXViewController* myController = [[MXViewController alloc] init];
//修改window中rootViewController属性
self.window.rootViewController = myController;
[self.window makeKeyAndVisible];
return YES;
}
*3 button
- (void)viewDidLoad
{
//必定要调用父类的viewDidLoad
[super viewDidLoad];
//建立控件
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 40)];
UIButton* button = [UIButton buttonWithType:UIButtonTypeSystem];
//设置属性
label.text = @"hello world!!!";
[button setTitle:@"hello" forState:UIControlStateNormal];
button.frame = CGRectMake(160, 20, 80, 30);//frame设置坐标和宽高
//button.backgroundColor = [UIColor grayColor];
//给button添加事件处理 self对象 tap是self对象方法 for...点击各类状况
[button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];
//加入父视图中
[self.view addSubview:label];
[self.view addSubview:button];
// Do any additional setup after loading the view.
}
-(void)tap{
NSLog(@"调用了tap方法");
}
2、interface Builder
1 简称IB,专门用于让开发者构造界面的,是一个可视化的所见即所得的界面设计工具,从xcode4就集成到了xcode中
2 其本质是一个文本编辑器,设计结果是一个文本文件,之前此文件的扩展名是.nib,因此也叫nib文件,如今这个文本文件扩展名是.xib,
nib文件:button={"0k",{12,12}};
xib是xml文件
nib文件的内容,界面上全部的对象及属性,还要对象与对象之间的关系。
3 如何使用,程序运行时,若是你的控制器,建立时加载了此nib文件,那么文件中描述的全部对象会被建立,全部属性会被赋值,对象之间的关系会自动维护
4 如何加载,全部的控制器都会有一个方法:initWithNibName:"nib文件的文件名"
5 给xib文件中button控件绑定一个方法,选择button控件,按住Ctrl拖拽至方法处,该方法的返回值必须是IBAction(本质void),只是一个链接的一个标记
6 IBAction
* .m文件中定义一个私有方法,未来作事情的响应。
* 从xib文件中链接按钮到方法上(用Ctrl键拖拽链接)
* 取消链接,从xib文件中找到按钮,第6个检查器中找到链接,将其删除
7 IBOutlet
* 在.m文件的扩展中定义属性,属性必定有IBOutlet标记
* 从xib文件中链接属性(连线)
* 若是属性是retain(strong)并使用了MRC,须要在dealloc方法中release此属性
8 IBOutlet 和 IBAction
IBOutlet链接的是属性,若是须要在程序代码中(controller中),访问这个xib文件中定义的对象时(如lable)就须要链接一个属性到xib
IBAction链接的是方法,若是须要用户操做了xib文件中定义的控件(如按钮),须要调用方法,那么方法就须要用IBAction连线
IBAction方法通常是由用户触发的
练习:界面上有一个按钮,当用户touch了此按钮时,界面上就出现了一个lable,
做业:
0. 复习课堂代码
1. 尝试使用Button的各类事件
2. 尝试使用UILabel和UIButton的其余属性
如:font (字体)
textColor
backgroundColor
tintColor
3. 写一个模仿聊天的界面
界面上有一个按钮,按下此按钮后,界面会出现一个Label
要求:
1)每一个Label之间上下间隔10个点,而且和屏幕左右保持10个点的距离
2) label高20个点
3) 每一个label的文字会叠加
4) 每一个label的背景色是灰色的
5) 尝试改变字体(UIFont)
屏幕宽度是320个点