開始熟悉Xamarin在開發IOS的結構!!!!!!!html
先看官方設計模式
這個是以一個單頁面的程序進行講述的。app
1 程序引用的程序集,核心的Xamarin.IOS 程序集,包含了對應版本的APIide
2 組件 官方商城上的組件佈局
3 資源文件 位圖 音頻 視頻等文件post
4 Main.cs 定義程序啓動入口學習
5 AppDelegate.cs 程序啓動後,定義窗口容器,並接收來自系統的事件消息。測試
6 Main.storyboard 視圖上的部件容器動畫
7 ViewController.cs 控制器this
8 ViewController.designer.c ,在畫板 storyboard 上的部件,在這裏都會自動生成對應的基本屬性設置操做
9 Info.plist 應用的一些基本信息描述
10 Entitlements.plist 依賴的Apple的服務
程序加載運行流程圖
The AppDelegate
class manages the application Window. The Window is a single instance of the UIWindow
class that serves as a container for the user interface. By default, an application gets only one Window onto which to load its content, and the Window is attached to aScreen (single UIScreen
instance) that provides the bounding rectangle matching the dimensions of the physical device screen.
The AppDelegate is also responsible for subscribing to system updates about important application events such as when the app finishes launching or when memory is low.
定義程序運行時候的窗口容器,窗口 window 是自動適應物理屏幕的。此外,它還負責監聽來自系統的事件通知。好比,app加載中或者內存低。
若是你有作過MVC模式的開發,這裏應該很容易。Model-View-Controller。
視圖控制器應該在MVC設計模式中扮演控制層(C)的角色,UIViewController的職責對內管理與之關聯的View,對外跟其餘UIViewController通訊和協調。一個視圖控制器管理一個視圖(它能夠有子視圖),其view屬性指向它所管理的視圖。UIViewController類能夠有子類,可使用一個系統的UIViewController子類或者直接本身建立一個UIViewController的子類。
單界面程序僅僅有一個內容控制器,多界面的程序有多個控制器。每一個控制器,對應的內容部件按照必定的層次堆積。(
控制器 跟視圖之間怎麼關聯的,在畫板(xml)文件中,有對應的節點,將兩者進行了綁定。
)
設計器+畫板
看到這,我想起了之前作Silverlight的時候,在Blend中進行的動畫設計.............................
每一個畫板都是一個佈局場景,在畫板中有對應的內容佈局的層次結構。關聯到對應的控制器。在佈局文件中,上面咱們設計UI部件。在右下角,咱們設置關聯的控制器。
點擊後,在屬性窗口會有對應的顯示。
上圖中,灰色的那個箭頭,是一個Segue,它用來進行視圖之間的的轉換操做。鏈接視圖。
在上面,只有一個根Segue,表示程序啓動的時候,咱們會首先進入這個視圖。視圖中是一個UIView的實例,在根視圖,跟內部的子部件View部件進行加載。最終呈現到屏幕上。
UIView中的內容部件的層次,是按照倒樹狀的排列組織的。
下圖,顯示了一個視圖的加載的層次結構。在App啓動後,加載一個window實例,提供程序界面的容器。界面UIView包含一個根節點組織的樹狀的內容,子部件。內容關聯的控制器,負責內容的顯示控制,事件操做。
控制器 和 視圖的生命週期
視圖控制器中的基本事件能夠被重載的:
1 ViewDidLoad 在視圖被加載進內存後觸發調用此方法,咱們能夠在這裏進行一些初始化的操做
2 ViewWillAppear 視圖即將顯示到屏幕以前調用的
3 ViewWillDisappear 視圖從屏幕消失的以前發生。用來作清理或者狀態的持久化
4 ViewDidAppear and ViewDidDisappear 這一對事件在視圖Render部件或者卸載部件的時候 觸發
在不一樣的階段,咱們進行代碼控制視圖。所須要的工做就是對這些方法進行重載!override
視圖控制器最核心的職責,是接受處理,視圖上的部件的事件。好比一個按鈕的點擊操做(touch event will be invoked.........)
當咱們給視圖中的部件,好比一個Button,給他的Name屬性賦值的時候,咱們就立刻會在視圖關聯的控制器中的後臺文件中,獲得對應的字段聲明。
控制器 跟他的後臺文件 Designer.cs,兩個是一個同名的分部類。partail class.。。。。
測試 部署 發佈程序
調試就是在VS或者Xamarin studio中Debug按鈕點擊。前提是 你選好了對應的SDK +Device..............而且編譯經過。而後你就能夠去你的Mac設備上看模擬器了。
真機調試
真機調試的話 須要 蘋果的開發者數字證書!!!!!(奶奶的,每一年好多銀子)我的學習的話,就測試模擬器就好。。。。
真的發佈程序做品的時候,仍是須要下血本買證書的。
證書咋的買,咋的導入到XCode 等等步驟。百度去吧,一大堆
這個得單獨說說。
因爲IOS3以後 ,蘋果的屏幕都是 視網膜(Retina)屏幕,這個比較有尿性的是二倍高清顯示,就是相同的區域內能夠顯示2個單位的像素,而不是普通屏幕的單像素。。。。
因此 ,圖標都是2X高清圖,還有就是設備的不一樣 IPAD IPOD MINI IOS 4 5 6 (s)的屏幕,決定了尺寸的 大小,選圖的時候須要注意...................
好了。開始吧 小夥子。我看好你哦~~~~~~~~~~~