01-UIKit

目錄:ios

1、視圖和控制器xcode

2、interface Builderapp

回到頂部編輯器

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個點

本站公眾號
   歡迎關注本站公眾號,獲取更多信息