第一天 UILabel
UI 的全称 User Interface 用户界面交互,人机界面交互
一 第一个IOS APP
见【Demo】-【1-First App】
1.1程序到底是如何启动的【理解思路】
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])) 函数一共做了三件事:
1.第三个参数传的是一个nil,表示默认创建一个应用程序对象(UIApplication对象),UIApplication对象代表一个应用程序对象;作业:负责记录当前应用程序的状态(程序是否是第一次启动,程序进入后台。。程序进入前台,,程序退出。。)
2.根据第四个参数指定的类名创建应用程序对象的代理人,根据应用程序当前的状态,提供相应的处理(调用不同的协议方法);
3.启动了一个时间循环,是一个死循环,用于记录当前由于用户操作产生的事件;
应用程序对象先到事件循环中取事件,把自己的状态发送给代理对象,,让代理对象根据不同的状态做不同的事情,当程序第一次启动的时候,代理对象做的第一件事情就是创建一个要显示的界面(窗口。。);didFinishLauncing。。。。方法就会在此刻被执行。
1)进入前台:两个步骤:第一次启动,进入活跃状态;
2)进入后台:两个步骤:进入非活跃状态,程序已经进入后台;
3)进入前后:连个步骤:程序将要进入前台,程序进入活跃状态;
4)退出: 三个步骤:进入非活跃状态,程序已经进入后台,退出;
//1.当程序第一次启动的时候,调用该方法
-
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
视图设置三步走【**重点**】
//1).创建一个窗口对象,并设置窗口的大小和屏幕一样大,
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//2).设置窗口的背景颜色
self.window.backgroundColor = [UIColor whiteColor];
//3).显示窗口对象
[self.window makeKeyAndVisible];
// NSLog(@"程序第一次启动");
return YES;
}
//3.表示程序将进入非活跃状态
-
(void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"WillResignActive");
}
//4.程序已经进入后台
-
(void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"DidEnterBackground");
}
//5.将要进入前台
-
(void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"WillEnterForeground");
}
//2.表示程序已经进入了活跃状态
-
(void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"DidBecomeActive");
}
//6.退出
-
(void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"WillTerminate");
}
二 UIView 视图
2.1什么是视图?
凡是界面上能看得见,摸得着,用于显示的都是视图;
2.2如何把视图对象添加到窗口上显示?
视图要显示在窗口上,首先要有一个位置和大小,这里的位置和大小组成了一个矩形区域,然后把这个视图添加到窗口上显示;
UI阶段所学的所有的控件,都是直接或者间接的继承自UIView,即所有的控件都是视图;
【UIWindow也是继承自UIView的,窗口也是一个特殊的视图】
2.3 UIWindow窗口
窗口是整个应用程序显示界面的基础容器,所有要显示的界面元素都要基于窗口来添加(一个应用程序理论上只需要一个窗口)
关键点:
1.创建的时候要设定范围和大小(frame)【矩形区域】
2.显示出来(makeKeyAndVisible)
//*************创建一个UIView对象******
//CGRect 是一个结构体,他记录视图左顶点在父视图坐标系中的位置以及在父视图中所占据的大小
//1.创建视图对象,并设置frame
CGRect screenBounds = [[UIScreen mainScreen] bounds]; //拿到屏幕的大小
CGRect rect = CGRectMake(50, 50, screenBounds.size.width-100, 200);
UIView *view = [[UIView alloc] initWithFrame:rect];
//2.设置视图的背景颜色
view.backgroundColor = [UIColor orangeColor];
//3.把视图对象添加到窗口上显示
view.alpha = 0.1;
[self.window addSubview:view];
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, view.frame.size.width-100, view.frame.size.height-100)];
view2.backgroundColor = [UIColor blueColor];
//设置透明度(0-1取值)
view2.alpha = 1;
//设置一个视图是否隐藏 YES 隐藏 NO 不隐藏(默认)
view2.hidden = NO;
[self.window addSubview:view2];
// [view2 removeFromSuperview]; //移除视图
//frame 表示参照父视图的坐标系来设置x,y,w,h的值
//bounds 表示参照以自己本身的坐标系为参照,来设置x,y,w,h(x,y坐标永远为0,0)
//center 中心点 (通过中心点可以直接移动视图)
view2.center = CGPointMake(200, 300);
三 UILabel:UIView
作用:用于显示文本信息
【Demo】-【2-UILabel】
//*************创建UILabel对象**********
- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(80, 80, screenBounds.size.width-160, 30)];
//设置背景颜色 - label.backgroundColor = [UIColor cyanColor];
//设置label展示的文字内容 【**重点**】
3)label.text = @"我是标签1";
//设置文字的对齐方式(居左,居右,居中)【默认居中】
4) label.textAlignment = NSTextAlignmentCenter;
//设置文字的字体颜色(默认是黑色)
5) label.textColor = [UIColor redColor];
// [self.window addSubview:label];
label2.textAlignment = NSTextAlignmentRight;//居右显示
//设置文字的字体大小 【***】
6) label2.font = [UIFont systemFontOfSize:24];
//设置字体加粗
//同一属性,设置多次,以最后一次设置为准
7) label2.font = [UIFont boldSystemFontOfSize:22];
//设置斜体
8) label2.font = [UIFont italicSystemFontOfSize:22];
label3.textAlignment = NSTextAlignmentCenter;
//拿到系统提供的字体库(数组中存储的都是NSString *类型,每一个元素代表一个字体名称)
9) NSArray *names = [UIFont familyNames];
// NSLog(@"%@", names);
//设置字体类型,开发过程中比较常用,具体用什么字体由美工定夺
10) label3.font = [UIFont fontWithName:@"Sinhala Sangam MN" size:22];
// [self.window addSubview:label3];
label4.textAlignment = NSTextAlignmentCenter;
//设置文字的阴影颜色
11) label4.shadowColor = [UIColor redColor];
//设置文字阴影的偏移量
12) label4.shadowOffset = CGSizeMake(1, 1);
//label默认行数为1w
//设置label显示的行数 【****** 重点 ****】
//设置为0,表示自动换行
13) label5.numberOfLines = 0;
//根据内容自适应字体大小
// label5.adjustsFontSizeToFitWidth = YES;
//设置label的换行模式 了解
// label5.lineBreakMode = NSLineBreakByTruncatingTail;
//添加阴影效果
bt.layer.shadowOffset = CGSizeMake(3, 3);
bt.layer.shadowColor = [UIColor redColor].CGColor;
bt.layer.shadowOpacity = 1;
//添加圆角效果
bt.layer.masksToBounds = YES;
bt.layer.cornerRadius = 10;