Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
The MT. Interfejs API odbicia D umożliwia dekorowane klasy z atrybutami, które mt. D używa metody do automatycznego tworzenia ekranów. Interfejs API odbicia udostępnia powiązanie między tymi klasami i wyświetlanymi na ekranie. Mimo że ten interfejs API nie zapewnia szczegółowej kontrolki, którą wykonuje interfejs API elementów, zmniejsza złożoność, automatycznie tworząc hierarchię elementów na podstawie dekoracji klas.
Konfigurowanie usługi MT. D
MT. Język D jest dystrybuowany za pomocą platformy Xamarin.iOS. Aby go użyć, kliknij prawym przyciskiem myszy węzeł Odwołania projektu Xamarin.iOS w programie Visual Studio 2017 lub Visual Studio dla komputerów Mac i dodaj odwołanie do zestawu MonoTouch.Dialog-1. Następnie dodaj using MonoTouch.Dialog instrukcje w kodzie źródłowym w razie potrzeby.
Wprowadzenie do interfejsu API odbicia
Korzystanie z interfejsu API odbicia jest tak proste, jak:
- Tworzenie klasy ozdobionej za pomocą usługi MT. Atrybuty D.
BindingContextUtworzenie wystąpienia, przekazanie go do wystąpienia powyższej klasy.- Utworzenie obiektu
DialogViewController, przekazując go za pomocą poleceniaBindingContext’sRootElement.
Przyjrzyjmy się przykładowi, aby zilustrować sposób używania interfejsu API odbicia. W tym przykładzie utworzymy prosty ekran wprowadzania danych, jak pokazano poniżej:
Tworzenie klasy za pomocą usługi MT. Atrybuty D
Pierwszą rzeczą, jaką musimy użyć interfejsu API odbicia, jest klasa ozdobiona atrybutami. Te atrybuty będą używane przez mt. D wewnętrznie do tworzenia obiektów z interfejsu API elementów. Rozważmy na przykład następującą definicję klasy:
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;
}
Spowoduje to SectionAttribute utworzenie sekcji UITableView z argumentem ciągu używanym do wypełnienia nagłówka sekcji. Po zadeklarowaniu sekcji każde pole, które następuje po niej, zostanie uwzględnione w tej sekcji, dopóki nie zostanie zadeklarowana inna sekcja.
Typ elementu interfejsu użytkownika utworzony dla pola będzie zależeć od typu pola i mt. D atrybut dekorujący go.
Na przykład Name pole jest polem i string jest ozdobione elementem EntryAttribute. Spowoduje to dodanie wiersza do tabeli z polem wprowadzania tekstu i określonym podpisem. IsApproved Podobnie pole jest polem bool z wartością CheckboxAttribute, co powoduje, że wiersz tabeli z polem wyboru po prawej stronie komórki tabeli. MT. D używa nazwy pola, automatycznie dodając spację, aby utworzyć podpis w tym przypadku, ponieważ nie jest określony w atrybucie.
Dodawanie elementu BindingContext
Aby użyć Expense klasy, musimy utworzyć klasę BindingContext. A BindingContext to klasa, która będzie wiązać dane z klasy przypisanej w celu utworzenia hierarchii elementów. Aby go utworzyć, po prostu utworzymy wystąpienie i przekażemy wystąpienie klasy przypisanej do konstruktora.
Aby na przykład dodać interfejs użytkownika zadeklarowany przy użyciu atrybutu Expense w klasie, dołącz następujący kod w FinishedLaunching metodzie :AppDelegate
var expense = new Expense ();
var bctx = new BindingContext (null, expense, "Create a task");
Następnie musimy zrobić, aby utworzyć interfejs użytkownika, to dodać BindingContext element do DialogViewController elementu i ustawić go jako RootViewController okno, jak pokazano poniżej:
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;
}
Uruchomienie aplikacji powoduje teraz wyświetlenie ekranu wyświetlanego powyżej.
Dodawanie kontrolki UINavigationController
Zwróć jednak uwagę, że tytuł "Utwórz zadanie", który został przekazany do elementu BindingContext , nie jest wyświetlany. Jest to spowodowane tym, że element DialogViewController nie jest częścią elementu UINavigatonController. Zmieńmy kod, aby dodać element UINavigationController jako okno RootViewController, , a następnie dodajmy DialogViewController go jako katalog główny elementu UINavigationController , jak pokazano poniżej:
nav = new UINavigationController(dvc);
window.RootViewController = nav;
Teraz po uruchomieniu aplikacji tytuł zostanie wyświetlony na UINavigationController’s pasku nawigacyjnym, jak pokazano na poniższym zrzucie ekranu:
Dzięki włączeniu UINavigationControllerelementu możemy teraz korzystać z innych funkcji usługi MT. D, dla którego nawigacja jest niezbędna. Na przykład możemy dodać wyliczenie do Expense klasy, aby zdefiniować kategorię wydatków i mt. D automatycznie utworzy ekran wyboru. Aby zademonstrować, zmodyfikuj klasę Expense tak, aby zawierała ExpenseCategory pole w następujący sposób:
public enum Category
{
Travel,
Lodging,
Books
}
public class Expense
{
…
[Caption("Category")]
public Category ExpenseCategory;
}
Uruchomienie aplikacji powoduje teraz wyświetlenie nowego wiersza w tabeli dla kategorii, jak pokazano poniżej:
Wybranie wiersza powoduje przejście aplikacji do nowego ekranu z wierszami odpowiadającymi wyliczeniem, jak pokazano poniżej:
Podsumowanie
W tym artykule przedstawiono przewodnik po interfejsie API odbicia. Pokazaliśmy, jak dodać atrybuty do klasy, aby kontrolować, co jest wyświetlane. Omówiliśmy również sposób użycia elementu BindingContext do powiązania danych z klasy z utworzoną hierarchią elementów, a także sposobu używania usługi MT. D z elementem UINavigationController.



