Xamarin.iOS'ta Kullanıcı Arabirimi Nesneleri Oluşturma

Apple, ilgili işlev parçalarını Xamarin.iOS ad alanlarına eşit olan "çerçeveler" olarak gruplandırır. UIKit , iOS için tüm kullanıcı arabirimi denetimlerini içeren ad alanıdır.

Kodunuzun etiket veya düğme gibi bir kullanıcı arabirimi denetimine başvurması gerektiğinde aşağıdaki using deyimini eklemeyi unutmayın:

using UIKit;

Bu bölümde ele alınan tüm denetimler UIKit ad alanındadır ve her kullanıcı denetim sınıfı adının ön eki vardır UI .

Kullanıcı arabirimi denetimlerini ve düzenlerini üç şekilde düzenleyebilirsiniz:

  • Xamarin iOS Tasarım Aracı – Ekranları tasarlamak için Xamarin'in yerleşik düzen tasarımcısını kullanın. Yerleşik tasarımcıyla düzenlemek için görsel taslak veya XIB dosyalarına çift tıklayın.
  • Xcode Interface Builder – Arabirim Oluşturucusu ile denetimleri ekran düzenlerinize sürükleyin. Çözüm Bölmesi'nde dosyaya sağ tıklayıp Xcode Arabirimi Oluşturucusu ile > Aç'ı seçerek görsel taslak veya XIB dosyasını Xcode'da açın.
  • C# kullanarak – Denetimler de program aracılığıyla kodla oluşturulabilir ve görünüm hiyerarşisine eklenebilir.

Yeni Görsel Taslak ve XIB dosyaları, bir iOS projesine sağ tıklayıp Yeni Dosya Ekle>... seçilerek eklenebilir.

Hangi yöntemi kullanırsanız kullanın, denetim özellikleri ve olayları uygulama mantığınızda C# ile yine de işlenebilir.

Xamarin iOS Tasarım Aracı kullanma

iOS Tasarım Aracı kullanıcı arabiriminizi oluşturmaya başlamak için görsel taslak dosyasına çift tıklayın. Denetimler aşağıda gösterildiği gibi Araç Kutusu'ndan tasarım yüzeyine sürüklenebilir:

Tasarım yüzeyinde bir denetim seçildiğinde, Özellikler Bölmesi bu denetimin özniteliklerini gösterir. Aşağıdaki ekran görüntüsünde doldurulan Pencere Öğesi > Kimlik > Adı alanı Çıkış adı olarak kullanılır. C# dilinde denetime bu şekilde başvurabilirsiniz:

Özellikler Pencere Öğesi Bölmesi

iOS tasarımcısının kullanımına daha ayrıntılı bir bakış için iOS Tasarım Aracı giriş kılavuzuna bakın.

Xcode Arabirim Oluşturucusu'nu kullanma

Interface Builder'ı kullanmayı bilmiyorsanız Apple'ın Interface Builder belgelerine bakın.

Görsel Taslak'ı Xcode'da açmak için görsel taslak dosyasının bağlam menüsüne erişmek için sağ tıklayın ve Xcode Arabirim Oluşturucusu ile açmayı seçin:

Denetimler, aşağıda gösterilen Nesne Kitaplığı'ndan Tasarım Yüzeyine sürüklenebilir:

Xcode Nesne Kitaplığı

Arabirim Oluşturucusu ile kullanıcı arabiriminizi tasarlarken, C# dilinde başvurmak istediğiniz her denetim için bir Outlet oluşturmanız gerekir. Bu işlem, Xcode araç çubuğu düğmesindeki orta Düzenleyici düğmesini kullanarak Yardımcı Düzenleyici'yi açarak yapılır:

Yardımcı Düzenleyici düğmesi

Kullanıcı arabirimi nesnesine tıklayın; ardından Denetim .h dosyasına sürükleyin . Sürüklemeyi Denetlemek için denetim tuşunu basılı tutun, ardından çıkışını (veya eylemi) oluşturduğunuz kullanıcı arabirimi nesnesine tıklayın ve basılı tutun. Üst bilgi dosyasına sürüklerken Control tuşunu basılı tutun. Tanımın altına sürüklemeyi @interface tamamlayın. Aşağıdaki ekran görüntüsünde gösterildiği gibi, başlık Çıkış Ekle veya Çıkış Koleksiyonu ile birlikte mavi bir çizgi görünmelidir.

Tıklamayı bıraktığınızda Outlet için kodda başvurulabilecek bir C# özelliği oluşturmak için kullanılacak bir ad sağlamanız istenir:

Çıkış oluşturma

Xcode'un Arabirim Oluşturucusu'nun Mac için Visual Studio ile tümleştirilmesi hakkında daha fazla bilgi için Xib Kod Oluşturma belgesine bakın.

C# kullanma

C# kullanarak program aracılığıyla bir kullanıcı arabirimi nesnesi oluşturmaya karar verirseniz (örneğin, Görünüm veya Görünüm Denetleyicisinde), şu adımları izleyin:

  • Kullanıcı arabirimi nesnesi için bir sınıf düzeyi alanı bildirin. Örneğin, ViewDidLoad denetimin kendisini bir kez oluşturun. Nesneye daha sonra Görünüm Denetleyicisi'nin yaşam döngüsü yöntemleri (örn. ViewWillAppear) boyunca başvurulabilir.
  • Denetimin çerçevesini tanımlayan bir CGRect oluşturun (ekranda X ve Y koordinatlarının yanı sıra genişliği ve yüksekliği). Bunun için bir using CoreGraphics yönergeniz olduğundan emin olmanız gerekir.
  • Denetimi oluşturmak ve atamak için oluşturucuyu çağırın.
  • Tüm özellikleri veya olay işleyicilerini ayarlayın.
  • Denetimi görünüm hiyerarşisine eklemek için çağrısı Add() .

C# kullanarak Görünüm Denetleyicisinde oluşturma UILabel işleminin basit bir örneği aşağıda verilmiştir:

UILabel label1;
public override void ViewDidLoad () {
    base.ViewDidLoad ();
    var frame = new CGRect(10, 10, 300, 30);
    label1 = new UILabel(frame);
    label1.Text = "New Label";
    View.Add (label1);
}

C# ve Görsel Taslakları Kullanma

Görünüm Denetleyicileri Tasarım Yüzeyine eklendiğinde, projede buna karşılık gelen iki C# dosyası oluşturulur. Bu örnekte ve ControlsViewController.cs ControlsViewController.designer.cs otomatik olarak oluşturulmuştur:

ViewController kısmi sınıfı

Dosya ControlsViewController.cs kodunuz için tasarlanmıştır. ve gibi ViewDidLoad ViewWillAppear yaşam döngüsü yöntemlerinin View uygulandığı ve kendi özelliklerinizi, alanlarınızı ve yöntemlerinizi ekleyebileceğiniz yerdir.

ControlsViewController.designer.cs kısmi bir sınıf içeren kod oluşturulur. tasarım yüzeyindeki bir denetimi Mac için Visual Studio adlandırdığınızda veya Xcode'da bir çıkış veya eylem oluşturduğunuzda, tasarımcı (designer.cs) dosyasına karşılık gelen bir özellik veya kısmi bir yöntem eklenir. Aşağıdaki kod, iki düğme ve bir metin görünümü için oluşturulan ve düğmelerden birinin de olay içeren bir TouchUpInside kod örneğini gösterir.

Kısmi sınıfın bu öğeleri kodunuzun denetimlere başvurmasını ve tasarım yüzeyinde bildirilen eylemlere yanıt vermesini sağlar:

[Register ("ControlsViewController")]
    partial class ControlsViewController
    {
        [Outlet]
        [GeneratedCodeAttribute ("iOS Designer", "1.0")]
        UIKit.UIButton Button1 { get; set; }

        [Outlet]
        [GeneratedCodeAttribute ("iOS Designer", "1.0")]
        UIKit.UIButton Button2 { get; set; }

        [Outlet]
        [GeneratedCodeAttribute ("iOS Designer", "1.0")]
        UIKit.UITextField textfield1 { get; set; }

        [Action ("button2_TouchUpInside:")]
        [GeneratedCodeAttribute ("iOS Designer", "1.0")]
        partial void button2_TouchUpInside (UIButton sender);

        void ReleaseDesignerOutlets ()
        {
            if (Button1 != null) {
                Button1.Dispose ();
                Button1 = null;
            }
            if (Button2 != null) {
                Button2.Dispose ();
                Button2 = null;
            }
            if (textfield1 != null) {
                textfield1.Dispose ();
                textfield1 = null;
            }
        }
    }
}

Dosya designer.cs el ile düzenlenmemelidir; IDE (Mac için Visual Studio veya Visual Studio) görsel taslakla eşitlenmiş durumda tutmakla sorumludur.

Kullanıcı arabirimi nesneleri veya View ViewControlleröğesine program aracılığıyla eklendiğinde, nesne başvurularını kendiniz oluşturur ve yönetirsiniz ve bu nedenle tasarımcı dosyası gerekmez.