你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> C#開發IOS的程序的結構

C#開發IOS的程序的結構

編輯:IOS編程技術
【Xamarin挖牆腳系列:Xamarin.IOS的程序的結構】

開始熟悉Xamarin在開發IOS的結構!!!!!!!

 

先看官方

 

這個是以一個單頁面的程序進行講述的。

1 程序引用的程序集,核心的Xamarin.IOS 程序集,包含了對應版本的API

2 組件   官方商城上的組件

3 資源文件 位圖  音頻  視頻等文件

4 Main.cs  定義程序啟動入口

5  AppDelegate.cs 程序啟動後,定義窗口容器,並接收來自系統的事件消息。

Main.storyboard 視圖上的部件容器

ViewController.cs  控制器

ViewController.designer.c ,在畫板 storyboard 上的部件,在這裡都會自動生成對應的基本屬性設置操作

Info.plist   應用的一些基本信息描述

10 Entitlements.plist 依賴的Apple的服務

 

 

程序加載運行流程圖

 

 

 

Main 程序入口

Application Delegate 

 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加載中或者內存低。

User Interface 界面

如果你有做過MVC模式的開發,這裡應該很容易。Model-View-Controller。

視圖控制器應該在MVC設計模式中扮演控制層(C)的角色,UIViewController的職責對內管理與之關聯的View,對外跟其他UIViewController通信和協調。一個視圖控制器管理一個視圖(它可以有子視圖),其view屬性指向它所管理的視圖。UIViewController類可以有子類,可以使用一個系統的UIViewController子類或者直接自己創建一個UIViewController的子類。

 

單界面程序僅僅有一個內容控制器,多界面的程序有多個控制器。每個控制器,對應的內容部件按照一定的層次堆積。(

控制器 跟視圖之間怎麼關聯的,在畫板(xml)文件中,有對應的節點,將二者進行了綁定。

 

iOS Designer and Storyboards

設計器+畫板

看到這,我想起了以前做Silverlight的時候,在Blend中進行的動畫設計.............................

 

 

 

每個畫板都是一個布局場景,在畫板中有對應的內容布局的層次結構。關聯到對應的控制器。在布局文件中,上面我們設計UI部件。在右下角,我們設置關聯的控制器。

點擊後,在屬性窗口會有對應的顯示。

 

 

 

上圖中,灰色的那個箭頭,是一個Segue,它用來進行視圖之間的的轉換操作。連接視圖。

在上面,只有一個根Segue,表示程序啟動的時候,我們會首先進入這個視圖。視圖中是一個UIView的實例,在根視圖,跟內部的子部件View部件進行加載。最終呈現到屏幕上。

 

 

 

UIView中的內容部件的層次,是按照倒樹狀的排列組織的。

下圖,顯示了一個視圖的加載的層次結構。在App啟動後,加載一個window實例,提供程序界面的容器。界面UIView包含一個根節點組織的樹狀的內容,子部件。內容關聯的控制器,負責內容的顯示控制,事件操作。

 

 

View Controllers and the View Lifecycle

控制器  和 視圖的生命周期

 

視圖控制器中的基本事件可以被重載的:

ViewDidLoad  在視圖被加載進內存後觸發調用此方法,我們可以在這裡進行一些初始化的操作

ViewWillAppear 視圖即將顯示到屏幕之前調用的

ViewWillDisappear  視圖從屏幕消失的之前發生。用來做清理或者狀態的持久化

ViewDidAppear and ViewDidDisappear 這一對事件在視圖Render部件或者卸載部件的時候 觸發

 

在不同的階段,我們進行代碼控制視圖。所需要的工作就是對這些方法進行重載!override

視圖控制器最核心的職責,是接受處理,視圖上的部件的事件。比如一個按鈕的點擊操作(touch event will be invoked.........)

 

當我們給視圖中的部件,比如一個Button,給他的Name屬性賦值的時候,我們就馬上會在視圖關聯的控制器中的後台文件中,得到對應的字段聲明。

控制器 跟他的後台文件 Designer.cs,兩個是一個同名的分部類。partail class.。。。。

  這樣的設計,讓我們繪制界面 跟後面綁定的控制代碼保持在一個水平的層次上。(是不是有點傳統的WinForm開發,可見即所得!)   然後,在你對應的控制器中,就可以直接使用命名後的控件。 this.Mybutton!!!!!!!!     其他概念   IOS中的按鈕,設置顯示的文本,是設置Title。。。         控制按鈕是否可用   鍵盤消失方法並沒有提供在IOS的系統SDK中,所以 我們使用上面的方法 來告訴系統,文本框已經不再對應輸入的Focus了。這樣輸入鍵盤就會消失。       額 ,打開電話等操作,通過內置的uri 構架進行。 顯示框 是一個UIAlert控制器,添加自定義啊Action即可。。。。。熟悉MVC的開發人員應該很熟悉。  

Testing, Deployment, and Finishing Touches

測試 部署 發布程序

調試就是在VS或者Xamarin studio中Debug按鈕點擊。前提是 你選好了對應的SDK +Device..............並且編譯通過。然後你就可以去你的Mac設備上看模擬器了。

 

真機調試

真機調試的話 需要 蘋果的開發者數字證書!!!!!(奶奶的,每年好多銀子)個人學習的話,就測試模擬器就好。。。。

真的發布程序作品的時候,還是需要下血本買證書的。

證書咋的買,咋的導入到XCode 等等步驟。百度去吧,一大堆

Generate Custom Icons and Launch Images

這個得單獨說說。

由於IOS3之後 ,蘋果的屏幕都是  視網膜(Retina)屏幕,這個比較有尿性的是二倍高清顯示,就是相同的區域內可以顯示2個單位的像素,而不是普通屏幕的單像素。。。。

所以 ,圖標都是2X高清圖,還有就是設備的不同 IPAD  IPOD  MINI  IOS 4 5 6 (s)的屏幕,決定了尺寸的 大小,選圖的時候需要注意...................

 

好了。開始吧 小伙子。我看好你哦~~~~~~~~~~~

 

 

 
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved