Cocoa Touch基础
Cocoa Touch
主要特點:
- 基于objective-c語言、動態運行時
- Core Animation:基于組合獨立圖層
- Core Audio:播放、處理和錄制音頻
- Core Data:面向對象的數據管理解決方案
Cocoa Touch主要框架
iPhone 技術層構成
| 功能描述 | 為應用程序提供核心功能 | 創建復雜圖形、播放音頻和視頻、生成實時的三維圖形 | 訪問較低級的操作系統服務如文件存取、聯網等 | 最低級的iOS服務 包括線程、復雜數學運算、硬件配件和加密等 |
| 關鍵技術 | 1. 多任務 2. 打印<br 3. 數據保護 4. 蘋果推送通知服務 5. 本地通知 6. 手勢識別 7. 文件共享 8.點對點對戰服務 9. 標準系統View Controller 10. 外部顯示支持 | |||
| 主要框架 | 1. UIKit 2. MapKit 3. Message UI / Address Book UI / Event Kit UI 4. iAd 5. Event Kit UI | 1. AV Foundation 2. CoreAudio 3. CoreImage 4. CoreGraphics 5. CoreText 6. Image I/O 7. Media Player 8. OpenGLES 9. QuartzCore | 1. Accounts 2. Address Book 3. CFNetwork 4. Core Data 5. Core Foundation 6. Foundation 7. EventKit 8. CoreLocation 9. CoreMotion 10. Quick Look 11. StoreKit 12. SystemConfiguration | 1. Accelerate 2. Extemal Accessory 3. Security 4. System |
Cocoa ——核心類
-
NSObject
根類是所有類的子類,定義了所有類都有的方法,例如 alloc 和 init
-
UIApplication
-
每個程序在運行期有且僅有一個UIApplication(或其子類)實例
-
程序開始運行時,UIApplicationMain函數是程序的進入點,該函數的一個重要工作就是創建一個UIApplication的單例實例可以通過調用 [UIApplication sharedApplication]得到該單例實例的指針
-
主要工作是處理用戶事件,會開啟一個隊列,把所有用戶事件放入隊列逐個處理。在處理事件時,它會發送當前事件到一個合適處理事件的目標控件。此外,還維護一個在本應用中打開的Window列表(UIWindow實例),以此接觸應用中任何一個UIView對象。UIApplication實例會被賦予一個代理對象,以處理應用程序生命周期事件、系統事件等
-
UIWindow
管理和顯示視圖的容器:提供一個區域顯示視圖、將事件event分發給視圖
事件產生 --> 放入事件隊列(event queue) --> Application單例取出一個事件分發 --> 關鍵窗口(key window)處理 --> (如果是觸摸事件)通過響應鏈(responder chain)找到處理事件的對象
-
UIView
定義一塊矩形區域,并管理該區域內的所有屏幕顯示
-
UIResponder
- 一個UIResponder類表示一個可以接收事件的對象,UIResponder的實例被稱為響應者
- 所有顯示在界面上的對象都是從UIResponder直接或間接繼承的
-
UIControl
UIControl類是從UIView派生而來的,且是幾乎所有屏幕控件的父類,根據觸摸事件觸發操作
-
UIViewController
提供一個用于顯示View界面,同時包含View加載、卸載事件的重定義功能
Cocoa——數據類型類
-
NSString / NSMutableString
可以使用@符號 如 myLabel.text = @"xxx"; 初始化字符串
-
NSArray / NSMutableArray
- 初始化時總是使用nil來結束對象列表: message = [[NSArray alloc] initWithObjects:@"a",@"b",nil]; [message objectAtIndex:1];
- NSMutableArray用于創建初始化后可被修改的數組,NSArray創建時包含了所有的對象不能增加或者刪除(immutable)
-
NSDictionary / NSMutableDictionary
"object - key"對存儲,object可以是任何類型,key可以是任何字符串
message = [[NSDictionary alloc]initWithObjectsAndKeys: @"ob1",@"key1",@"ob2",@"key2",nil]; [message objectForKey:@"key2"]; -
NSNumber / NSDecimalNumber
用于將C語言中的數字類型存儲為NSNumber對象,這樣可以作為對象加入數組、字典中
[myNumber = [NSNumber alloc] numberWithInt:100];NSDecimalNumber 是NSNumber的子類,用于對非常大的數字執行算術運算
-
NSDate
創建日期對象并對日期進行運算
myDate = [NSDate date]; //創建當前日期的對象 [myDate earlierDate: userDate]; //比較這兩個日期哪個更早
Cocoa ——UI界面類
| UILabel | 顯示靜態文本 作為可控制文本塊,必要時進行修改 |
| UIButton | 用戶輸入,響應眾多觸摸事件 |
| UISwitch | 用戶輸入,收集“開”和“關”響應 |
| UISegmentedControl | 可觸摸的長條,包含多個命名的選項,觸摸選項可以激活事件 |
| UISlider | 可拖拽的小球,從特定范圍內選取一個值 |
| UIStepper | 步進控件類似于滑塊,給一個內部屬性+1或者-1 |
| UITextField / UITextView | 用于收集通過鍵盤輸入內容,前者單行,后者多行(且可以包含換行符) |
| UIDatePicker / UIPicker | 通過修改轉盤的每個部分,可以用作多個值的組合,快速輸入日期和時間 通過繼承UIPicker類,還可以創建自己的選擇器 |
| UIPopoverController | iPad特有的,能夠在其他視圖上面顯示一個視圖,以便用戶選擇器中的一個選項 |
| UIColor | 用于指定cocoa組件的顏色 |
| UITableView | 用于顯示列表條目,iPhone中沒有二維表的概念,每一行只有一個單元格,如果要實現二維表的顯示,則需要重定義每行的單元格,或者并列使用多個TableView。一個tableView至少有一個section,每個section中可以有0行、1行或者多行cell |
總結
以上是生活随笔為你收集整理的Cocoa Touch基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Scratch制作打弹球游戏(一)弹
- 下一篇: 显示前半内容后半内容用省略号_220六语