2013-02-08 54 views
3

我看着Monotouch.dialog的東西,它非常棒。但是,它有一些限制。我希望能夠創建我的應用程序,而不必使用Xib文件,但我不知道如何做到這一點。沒有MonoTouch對話框和xib文件....我不知道任何其他方式。MonoTouch - 創建沒有Xib的UI

任何人都可以指出正確的方向嗎?

回答

10

我不知道如何做這個最長的時間,但它比你想象的要簡單!只需添加一個常規的C#類(您不需要使用任何特殊模板),導入MonoTouch.Foundation和MonoTouch.UIKit命名空間,並將您的新類作爲UIViewController的子類。

就這麼簡單!你會想重寫像ViewDidLoad這樣的常用方法,但這應該足以讓你開始。至於在不使用.xib的情況下實現UI,只需通過編程方式創建所有內容,設置框架並將其添加到視圖中(當然還可以使用屬性/方法等對其進行定製)!

你會設置它是這樣的:

// Table setup 
var VersesTable = new UITableView() 
{ 
    Frame = new RectangleF (0, 0, View.Bounds.Width, View.Bounds.Height - 93), 
    BackgroundColor = UIColor.FromPatternImage (Images.BackgroundTexture), 
}; 
View.AddSubview (VersesTable); 

這樣越來越框架和一切設置(IMO)中最難的部分。

也有一些real-life code不使用.xibs和在Github頁上使用MonoTouch.Dialog TweetStation。​​

在Xamarin論壇中,有一個post詳細介紹了一些使用純C#代碼(no .xibs)的更多示例,這些示例非常有用!

+0

很好的回答。我不希望在一個屏幕上使用'MonoTouch.Dialog',因爲我的圖像必須像金字塔一樣構建,而MTD相對於從代碼構建它來說非常困難。我太過分地反思這種方式。我實際上繼承了'UIViewController',並覆蓋了你所討論的基礎方法。然後像你一樣將元素構建出來並添加到視圖中。我認爲最難的部分也是定位......所以我使用'Interface Builder'來獲得定位。然後我將這些職位轉換爲屏幕大小的百分比。 – BRogers 2013-02-11 19:47:57

+0

如果有人想知道是否通過代碼或IB來做...我更喜歡代碼。比兩者之間的彈跳要容易得多。我也使用百分比的位置和大小後,正確的位置,以便它可以普遍工作(ipad/iphone) – BRogers 2013-02-11 19:50:47

+0

布羅德,我完全同意!使用Interface Builder有很多障礙(你真的不知道發生了什麼),但是使用代碼方法,你真的可以看到發生了什麼。 – pierceboggan 2013-02-11 23:10:27