1、UIView
- 設(shè)置大小、位置 frame
- 使用棧的方式管理子view:addSubView,當子view在位置上有重疊,則優(yōu)先顯示棧頂view
- 主要的生命周期
init
willMoveToSuperview
didMoveToSuperview
willMoveToWindow
didMoveToWindow
2、UIViewController
- 管理 view 層級
- 自帶一個默認 view,是所有子view的容器
- 主要的生命周期
init
viewDidLoad
viewWillAppear
viewDidAppear
viewWillDisappear
viewDidDisappear
Dealloc
3、UIWindow
1、iPhone應用程序通常只有一個窗口,表示為一個UIWindow類的實例
2、窗口顯示出來之后,您很少需要再次引用它
UIWindow* aWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
4、UIApplication
1、UIApplication類提供了對運行在IOS設(shè)備上的app集中控制和調(diào)度的機制;
2、每一個IOS app必須有一個而且只能有一個UIApplication或者其子類的實例;
3、當程序啟動的時候,會調(diào)用UIApplicationMain函數(shù),創(chuàng)建UIapplication單例,該單例在整個IOS系統(tǒng)中就是你的App的抽象
4、能夠通過shareApplication方法來調(diào)用該單例
5、UIApplication還維護了當前App打開的窗口的列表。所以,你通過它能夠取到你App中任何一個View
6、app實例還實現(xiàn)了一個delegate,接受各種各樣程序運行時的事件,比如:程序啟動、低內(nèi)存警告、程序崩潰等等
7、能通過openURL:方法來接受和處理一個郵件或者圖片文件。如一個以Email開頭的URL將能夠喚起Email程序來展示這個郵件
8、注冊遠程消息通知,執(zhí)行程序級別的復位操作
5、UINavigationController
- 通過棧管理單頁面交互,如從主頁進入詳情頁
- 通常僅展示棧頂 Controller
-
Push/Pop 操作
6、UITabBarController
管理多個 UIViewController 的切換,通過點擊底部UITabBar中的TabBar來展示對應的 UIViewController

使用方式:
1、調(diào)用 setViewControllers 方法設(shè)置 ViewController
2、設(shè)置每個 ViewController 的 tabBarItem 的 title/image


7、UITableView 和 UITableViewCell



8、UICollectionView




9、UIScrollView


10、基礎(chǔ)控件
-
UILabel
-
UIImage
-
UIButton
UIButton 繼承自 UIControl ,擁有了點擊等交互能力,對于一般的 View,并沒有繼承UIControl,要實現(xiàn)交互需要使用 UIGestureRecognizer
-
UIGestureRecognizer
-
UIAlertView
該組件已被廢棄,但可以從中學習組件的設(shè)計
-
WKWebview
注:該組件并不屬于 UIKit ,而是在單獨的 WebKit 庫里


11、動畫



11、常見兩種布局


12、常見模式
- MVC
UITabBarController: C
tabBarItem: V
tabBarItem.title/image: M -
Delegate
一對一模式
-
Target-Action
-
KVO
一對多,類似觀察者模式











