Aracılığıyla paylaş


Düşünceler ion API'sini kullanarak Xamarin.iOS uygulaması oluşturma

The MT. D Düşünceler ion API'si sınıfların MT'nin öznitelikleriyle dekore edilmesini sağlar. D, otomatik olarak ekran oluşturmak için kullanır. Yansıma API'si, bu sınıflar ile ekranda görüntülenenler arasında bir bağlama sağlar. Bu API, öğeler API'sinin yaptığı ayrıntılı denetimi sağlamasa da, sınıf dekorasyonunu temel alan öğe hiyerarşisini otomatik olarak oluşturarak karmaşıklığı azaltır.

MT'nin ayarlanması. D

MT. D, Xamarin.iOS ile dağıtılır. Bunu kullanmak için Visual Studio 2017 veya Mac için Visual Studio bir Xamarin.iOS projesinin Başvurular düğümüne sağ tıklayın ve MonoTouch.Dialog-1 derlemesine başvuru ekleyin. Ardından, kaynak kodunuza gerektiği gibi deyimler ekleyin using MonoTouch.Dialog .

Düşünceler ion API'sini kullanmaya başlama

Düşünceler ion API'sini kullanmak şu kadar basittir:

  1. MT ile dekore edilmiş bir sınıf oluşturma. D öznitelikleri.
  2. BindingContext Yukarıdaki sınıfın bir örneğini geçirerek bir örnek oluşturma.
  3. DialogViewController oluşturma, bunu iletir BindingContext’sRootElement .

şimdi Düşünceler ion API'sinin nasıl kullanılacağını gösteren bir örneğe bakalım. Bu örnekte, aşağıda gösterildiği gibi basit bir veri giriş ekranı oluşturacağız:

Bu örnekte, burada gösterildiği gibi basit bir veri giriş ekranı oluşturacağız

MT ile sınıf oluşturma. D öznitelikleri

Düşünceler ion API'sini kullanmamız gereken ilk şey özniteliklerle donatılmış bir sınıftır. Bu öznitelikler MT tarafından kullanılır. Öğeler API'sinden nesne oluşturmak için dahili olarak D. Örneğin, aşağıdaki sınıf tanımını göz önünde bulundurun:

public class Expense
{
    [Section("Expense Entry")]

    [Entry("Enter expense name")]
    public string Name;

    [Section("Expense Details")]

    [Caption("Description")]
    [Entry]
    public string Details;

    [Checkbox]
    public bool IsApproved = true;
}

, SectionAttribute bölümün UITableView üst bilgisini doldurmak için kullanılan dize bağımsız değişkeniyle oluşturulmakta olan bölümleriyle sonuçlanır. Bir bölüm bildirildikten sonra, bundan sonra gelen her alan, başka bir bölüm bildirilinceye kadar bu bölüme eklenir. Alan için oluşturulan kullanıcı arabirimi öğesinin türü, alanın türüne ve MT'ye bağlıdır. D özniteliği onu süslüyor.

Örneğin, Name alan bir string ve ile EntryAttributedekore edilmiştir. Bu, bir metin girişi alanı ve belirtilen başlık ile tabloya bir satır eklenmesine neden olur. Benzer şekilde, IsApproved alan bool ile olan CheckboxAttributeve tablo hücresinin sağında onay kutusu bulunan bir tablo satırıyla sonuçlanır. MT. D, bir öznitelikte belirtilmediğinden, bu durumda başlık oluşturmak için otomatik olarak bir alan ekleyerek alan adını kullanır.

BindingContext ekleme

sınıfını Expense kullanmak için bir BindingContextoluşturmamız gerekir. A BindingContext , öğe hiyerarşisini oluşturmak için öznitelikli sınıftan verileri bağlayacak bir sınıftır. Bir tane oluşturmak için örneği oluşturmamız ve öznitelikli sınıfın bir örneğini oluşturucuya geçirmemiz yeterlidir.

Örneğin, sınıfında özniteliğini Expense kullanarak bildirdiğimiz kullanıcı arabirimini eklemek için yöntemine FinishedLaunchingAppDelegateaşağıdaki kodu ekleyin:

var expense = new Expense ();
var bctx = new BindingContext (null, expense, "Create a task");

Ardından kullanıcı arabirimini oluşturmak için tek yapmamız gereken öğesini öğesine eklemek BindingContextDialogViewController ve aşağıda gösterildiği gibi pencere olarak RootViewController ayarlamaktır:

UIWindow window;

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{   
    window = new UIWindow (UIScreen.MainScreen.Bounds);

    var expense = new Expense ();
    var bctx = new BindingContext (null, expense, "Create a task");
    var dvc = new DialogViewController (bctx.Root);

    window.RootViewController = dvc;
    window.MakeKeyAndVisible ();

    return true;
}

Artık uygulamanın çalıştırılması, yukarıda gösterilen ekranın görüntülenmesiyle sonuçlanır.

UINavigationController ekleme

Ancak, 'a BindingContext iletmiş olduğumuz "Görev oluştur" başlığının görüntülenmediğini fark edin. Bunun nedeni, öğesinin DialogViewController bir UINavigatonControlleröğesinin parçası olmamasıdır. Şimdi kodu pencere olarak ekleyecek UINavigationController şekilde değiştirelim ve aşağıda gösterildiği gibi öğesinin UINavigationController kökü olarak ekleyelimDialogViewController:RootViewController,

nav = new UINavigationController(dvc);
window.RootViewController = nav;

Uygulamayı çalıştırdığımızda başlık, aşağıdaki ekran görüntüsünde UINavigationController’s gösterildiği gibi gezinti çubuğunda görünür:

Şimdi uygulamayı çalıştırdığımızda başlık UINavigationControllers gezinti çubuğunda görünür

bir UINavigationControllerdahil ederek, artık MT'nin diğer özelliklerinden yararlanabiliriz. Gezintinin gerekli olduğu D. Örneğin, gider ve MT kategorisini Expense tanımlamak için sınıfına bir numaralandırma ekleyebiliriz. D, otomatik olarak bir seçim ekranı oluşturur. Göstermek için sınıfını Expense aşağıdaki gibi bir ExpenseCategory alan içerecek şekilde değiştirin:

public enum Category
{
    Travel,
    Lodging,
    Books
}

public class Expense
{
    …

    [Caption("Category")]
    public Category ExpenseCategory;
}

Artık uygulamanın çalıştırılması, gösterildiği gibi kategori için tabloda yeni bir satırla sonuçlanabilir:

Artık uygulamanın çalıştırılması, gösterildiği gibi kategori için tabloda yeni bir satırla sonuçlanabilir

Satırın seçilmesi, uygulamanın aşağıda gösterildiği gibi numaralandırmaya karşılık gelen satırlarla yeni bir ekrana geçmesiyle sonuçlanıyor:

Satırın seçilmesi, uygulamanın numaralandırmaya karşılık gelen satırlarla yeni bir ekrana geçmesiyle sonuçlanıyor

Özet

Bu makalede Düşünceler ion API'sine ilişkin bir kılavuz sunulmuştur. Nelerin görüntüleneceğini denetlemek için sınıfa özniteliklerin nasıl ekleneceğini gösterdik. Ayrıca, bir BindingContext sınıftan oluşturulan öğe hiyerarşisine veri bağlamak için 'nin nasıl kullanılacağını ve MT'nin nasıl kullanılacağını da ele aldık. UINavigationControllerile D.