第一天 UILabel
UI 的全稱 User Interface 用戶界面交互,人機界面交互
一 第一個IOS APP
見【Demo】-【1-First App】
1.1程序到底是如何啟動的【理解思路】
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])) 函數(shù)一共做了三件事:
1.第三個參數(shù)傳的是一個nil,表示默認創(chuàng)建一個應用程序?qū)ο螅║IApplication對象),UIApplication對象代表一個應用程序?qū)ο?;作業(yè):負責記錄當前應用程序的狀態(tài)(程序是否是第一次啟動,程序進入后臺。。程序進入前臺,,程序退出。。)
2.根據(jù)第四個參數(shù)指定的類名創(chuàng)建應用程序?qū)ο蟮拇砣?,根?jù)應用程序當前的狀態(tài),提供相應的處理(調(diào)用不同的協(xié)議方法);
3.啟動了一個時間循環(huán),是一個死循環(huán),用于記錄當前由于用戶操作產(chǎn)生的事件;
應用程序?qū)ο笙鹊绞录h(huán)中取事件,把自己的狀態(tài)發(fā)送給代理對象,,讓代理對象根據(jù)不同的狀態(tài)做不同的事情,當程序第一次啟動的時候,代理對象做的第一件事情就是創(chuàng)建一個要顯示的界面(窗口。。);didFinishLauncing。。。。方法就會在此刻被執(zhí)行。
1)進入前臺:兩個步驟:第一次啟動,進入活躍狀態(tài);
2)進入后臺:兩個步驟:進入非活躍狀態(tài),程序已經(jīng)進入后臺;
3)進入前后:連個步驟:程序?qū)⒁M入前臺,程序進入活躍狀態(tài);
4)退出: 三個步驟:進入非活躍狀態(tài),程序已經(jīng)進入后臺,退出;
//1.當程序第一次啟動的時候,調(diào)用該方法
-
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
視圖設置三步走【**重點**】//1).創(chuàng)建一個窗口對象,并設置窗口的大小和屏幕一樣大,
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//2).設置窗口的背景顏色
self.window.backgroundColor = [UIColor whiteColor];
//3).顯示窗口對象
[self.window makeKeyAndVisible];
// NSLog(@"程序第一次啟動");
return YES;
}
//3.表示程序?qū)⑦M入非活躍狀態(tài)
-
(void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"WillResignActive");
}
//4.程序已經(jīng)進入后臺
-
(void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"DidEnterBackground");
}
//5.將要進入前臺
-
(void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"WillEnterForeground");
}
//2.表示程序已經(jīng)進入了活躍狀態(tài)
-
(void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"DidBecomeActive");
}
//6.退出
-
(void)applicationWillTerminate:(UIApplication *)application {
NSLog(@"WillTerminate");
}
二 UIView 視圖
2.1什么是視圖?
凡是界面上能看得見,摸得著,用于顯示的都是視圖;
2.2如何把視圖對象添加到窗口上顯示?
視圖要顯示在窗口上,首先要有一個位置和大小,這里的位置和大小組成了一個矩形區(qū)域,然后把這個視圖添加到窗口上顯示;
UI階段所學的所有的控件,都是直接或者間接的繼承自UIView,即所有的控件都是視圖;
【UIWindow也是繼承自UIView的,窗口也是一個特殊的視圖】
2.3 UIWindow窗口
窗口是整個應用程序顯示界面的基礎容器,所有要顯示的界面元素都要基于窗口來添加(一個應用程序理論上只需要一個窗口)
關鍵點:
1.創(chuàng)建的時候要設定范圍和大小(frame)【矩形區(qū)域】
2.顯示出來(makeKeyAndVisible)
//*************創(chuàng)建一個UIView對象******
//CGRect 是一個結(jié)構(gòu)體,他記錄視圖左頂點在父視圖坐標系中的位置以及在父視圖中所占據(jù)的大小
//1.創(chuàng)建視圖對象,并設置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】
//*************創(chuàng)建UILabel對象**********
- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(80, 80, screenBounds.size.width-160, 30)];
//設置背景顏色 - label.backgroundColor = [UIColor cyanColor];
//設置label展示的文字內(nèi)容 【**重點**】
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;
//拿到系統(tǒng)提供的字體庫(數(shù)組中存儲的都是NSString *類型,每一個元素代表一個字體名稱)
9) NSArray *names = [UIFont familyNames];
// NSLog(@"%@", names);
//設置字體類型,開發(fā)過程中比較常用,具體用什么字體由美工定奪
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默認行數(shù)為1w
//設置label顯示的行數(shù) 【****** 重點 ****】
//設置為0,表示自動換行
13) label5.numberOfLines = 0;
//根據(jù)內(nèi)容自適應字體大小
// 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;