最近Xamarin.Form的開發工作上需要為iOS版本的介面做些優化,其中一個需求是要在TableView的Cell上加上Datail瀏覽指引,也就是這個>
符號。
[Xamarin.iOS]為ViewCell加上Accessory(>)
- 368
- 0
最近Xamarin.Form的開發工作上需要為iOS版本的介面做些優化,其中一個需求是要在TableView的Cell上加上Datail瀏覽指引,也就是這個>
符號。
最近因為換了新的筆電,所以重新安裝了Visual Studio 2015及Xamarin。本來一切都很順利,但是當我使用Visual Studio Android Emulator要進行Android的Debug時,卻發現無論如何都無法開啟APP。
Xamarin.Forms 提供一個message傳遞機制,以供view model, component之間低耦合的進行message的訂閱及傳送。這可以讓不同頁面,不同元件之間可以簡便的通知某個事件發生了,或是進行資料的傳遞。這個機制就是MessagingCenter。
Attached property 是一種特殊型別的Bindable property,它可以掛載在XAML中某一個物件上,讓該物件擁有這個屬性,而不需要定義屬性在該物件內。例如在Grid中的Child物件,可以使用Grid.Row
與 Grid.Column
這兩個attached properties以定義在Grid中的位置。而Grid.Row
與 Grid.Column
其實並不是定義在Grid的Child物件中。 Attached property也被應用在Attached Behaviors上,透過Behavior以簡便的擴充Control的功能。
DependencyService的目的是讓shared code可以依不同的手機平台呼叫該平台的特定功能。它的運作方式是會先在shared code 定義interface
,DependencyService則依據不同的平台專案解析及取得各平台的實作。
Behaviors的目的,是要讓我們想要替某個UI物件增加功能時,可以不須透過繼承(subclassing)的方式。它的作法是,將所欲增加的功能實作在一個Behavior class 中,再將它掛在UI物件上,以達到擴增功能的目的。
Bindable Properties是一種特別型態的property,它的值會被Xamarin.Forms property system所追蹤。所以可以支援data binding, styles, templates,及通知value的改變。
每一個Bindable Property都會有一個相對的BindableProperty
型別的 public static readonly
property。Label.Text
就是一種Bindable Properties,所以相對會有Label.TextProperty
。
Xamarin.Forms提供了Pages, Layouts and Controls這些UI元件。它使用了 Renderer
class以在不同手機平台上,建立原生的控制項。用這種方式,可以在shared code中設定位置及行為。
它也提供一個機制,讓開發者可以自訂Renderer
class以客製化在不同手機平台上想要的行為及外觀。
Style可以用來統一設定Xamarin.From的UI物件外觀,作用類似CSS。透過Style的設定,可以避免許多重複的程式碼,也可以讓畫面外觀樣式的維護更簡便。
筆記Xamarin官網上有關Layout的資訊
使用手機APP時,因為螢幕小的關係,一個功能通常都需要切換多個畫面才能處理完整。所以,頁面切換(Navigation)是Xamarin很重要的機制。
Xamarin Test Cloud是一個雲端的實機測試服務,可以將建置好的程式實際的安裝在Xamarin所提供的實際手機或平板電腦上運作,並進行預先寫好的測試程式。
依照「適用於 Xamarin 應用程式的 iOS 推播通知和通知中樞」,實做了一個推播通知功能。趁記憶還夠新的時候,把步驟記錄下來。
要做到這些,前提是必須有Apple Developer帳號以建立憑證,以及Azure帳號以設定Azure Notification Hubs。
開發完Xamarin的程式,也在模擬器上測試完後,接下來就需要將APP檔部署到站台上,以In-House的方式進行部署。這時,可透過VSTS的Task幫助我們進行建置及部屬的動作。這一篇分享如何使用VSTS建置Xamarin.iOS的專案以及如何產生IPA檔。