02-第一個iOS程序


第一個iOS程序

第一個iOS程序簡介

  • 初學iOS開發,研究的程序不要過於復雜,應該從最基本的開始
  • 大房子都是由小磚一塊一塊堆成的,而大型app是由無數個小程序段組成的
  • 接下來實現一個簡單的“加法計算器”,作為第一個iOS程序(Hello World)
  • 分析可得,至少需要開發步驟:

  1. 添加需要的控件,搭建UI界面:1個按鈕、3個文本標簽、2個文本輸入框

  2. 監聽按鈕的點擊事件

  3. 取得2個文本框值,將計算好的最終結果顯示到右邊的文本標簽上

掌握

  • 往storyboard中添加控件

  • UIViewController和UIView的關系

  • 程序的運行過程

  • IBAction、IBOutlet的作用

  • 如何監聽控件的事件(比如按鈕的點擊事件)

  • 父控件和子控件的概念

  • 退出鍵盤

作業

  • 制作一個QQ登錄界面

  • 要求:

  1. QQ文本框要有“請輸入QQ”的文字提示(用戶輸入文字時會自動消失)

  2. 密碼文本框要有“請輸入密碼”的文字提示(用戶輸入文字時會自動消失)

  3. QQ文本框只能輸入數字

  4. 密碼文本框的文字必須是暗文顯示

  5. 點擊登錄按鈕后輸出用戶輸入的QQ和密碼,並且退出鍵盤

Storyboard文件

  • 在iOS5之前,蘋果使用xib文件來描述UI界面

  • 在iOS5之后,蘋果采取了更加強大和先進的storyboard文件來描述界面(Xcode5是基於iOS7的)           

  • 左邊的箭頭表明:程序一啟動就會顯示箭頭所指的界面

UILabel – 文本標簽

  • 文本標簽的作用僅僅是顯示一串固定的文字

UIButton – 按鈕

  • 按鈕的作用是:監聽用戶的點擊事件,在用戶點擊后做出反應

UITextField – 文本輸入框

  • 文本輸入框可以彈出鍵盤,讓用戶輸入一些具體的值

UIView

  • 屏幕上能看得見摸得着的東西就是UIView,比如屏幕上的按鈕、文字、圖片
  • 一般翻譯叫做:視圖\控件\組件
  • UIButton、UILabel、UITextField都繼承自UIView
  • 每一個UIView都是一個容器,能容納其他UIView(比如右圖中的整個鍵盤是一個UIView,里面容納很多小格子的數字UIView)

父控件和子控件

  • 在“加法計算器”中,最后面那塊白色的全屏的東西也是一個UIView
  • 白色的大UIView中容納了很多小的UIView,視圖層次結構如下圖所示
  • 在白色的大UIView中,容納了6個小UIView(1個UIButton、2個UITextField、3個UILabel)

  • 這種情況下,我們可以稱白色的大UIView為6個小UIView的父控件(父視圖),6個小UIView都是白色大UIView的子控件(子視圖)

UIViewController

  • 手機上自帶的“設置”中有很多的界面,點擊對應的選項可以跳到下一個界面
  • 每一個新的界面都是一個新的UIView,在切換過程中,涉及到了:

  1. UIView的創建和銷毀

  2. UIView跟用戶的交互(處理UIView內部每一行的點擊)

  • 其實,每當顯示一個新界面時,首先會創建一個新的UIViewController對象,然后創建一個對應的全屏UIView,UIViewController負責管理這個UIView

  • UIViewController就是UIView的大管家,負責創建、顯示、銷毀UIView,負責監聽UIView內部的事件,負責處理UIView與用戶的交互

  • UIViewController內部有個UIView屬性,就是它負責管理的UIView對象 :

  1.  @property(nonatomic,retain) UIView *view;
  • 嚴格來講,下圖箭頭所指的應該是一個UIViewController對象,里面白色的界面僅僅是UIViewController內部的UIView屬性

  • 箭頭所指UIViewController的真實類型是MJViewController

加法計算器程序的運行流程

  • 綜合分析,可以得出程序的簡單運行流程:
  1. 讀取Main.storyboard文件
  2. 創建箭頭所指的MJViewController對象
  3. 根據storyboard文件中描述創建MJViewController的UIView對象
  4. 將UIView對象顯示到用戶眼前

如何監聽按鈕點擊

  • 現在已經知道:應該由MJViewController來監聽“計算”按鈕的點擊
  • 換句話說,MJViewController應該提供一個方法出來,當用戶點擊“計算”按鈕時,就調用這個方法來通知MJViewController按鈕被人點了
  • MJViewController就在這個方法中實現想做的任何事情,比如計算2個文本輸入框內值的和

補充問題

  • IBAction和IBOutlet究竟有什么作用?
  • 還有其他拖線方式么?
  • Storyboard文件中箭頭的含義?
  • 如何更換storyboard文件?
  • 如何讓文本框只能輸入數字?
  • 如何退出鍵盤?
  • Company Identifier和Bundle Identifier的作用
  • 模擬器還有哪些功能?
  • 特別提醒:iOS7和iOS6的區別

IBAction和IBOutlet

  • IBAction
  1. 從返回值角度上看,作用相當於void
  2. 只有返回值聲明為IBAction的方法,才能跟storyboard中的控件進行連線
  • IBOutlet
  1. 只有聲明為IBOutlet的屬性,才能跟storyboard中的控件進行連線

設置程序啟動時加載的storyboard

  • 這個設置表明:程序啟動時會加載Main.storyboard

設置UITextField的鍵盤類型

  • 這個設置表明:UITextField彈出的是數字鍵盤

退出鍵盤的兩種方式

  • resignFirstResponder
  1. 當叫出鍵盤的那個控件(第一響應者)調用這個方法時,就能退出鍵盤
  • endEditing
  1. 只要調用這個方法的控件內部存在第一響應者,就能退出鍵盤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM