目錄: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個點