Kontrolka menu systemu watchOS (Force Touch) na platformie Xamarin

Zestaw Watch Kit udostępnia gest Force Touch, który wyzwala menu po zaimplementowaniu na ekranie aplikacji zegarka.

Apple Watch showing a menu

Reagowanie na wymuszone dotknięcie

Menu Jeśli element został zaimplementowany dla kontrolera interfejsu, gdy użytkownik wykona funkcję Force Touch, zostanie wyświetlone menu. Jeśli menu nie zostało zaimplementowane, ekran jest krótko animowany, nie ma innego działania.

Wymuś dotknięcia nie są skojarzone z żadnym konkretnym elementem na ekranie; tylko jedno menu można dołączyć do kontrolera interfejsu i będzie wyświetlane niezależnie od tego, gdzie na ekranie występuje naciśnięcie klawisza Force Touch.

Między jedną i czterema opcjami menu można przedstawić.

Dodawanie menu

Element Menu należy dodać do InterfaceController scenorysu w czasie projektowania. Gdy kontrolka menu zostanie przeciągnięta na kontroler interfejsu, nie ma żadnych wskazówek wizualnych w podglądzie scenorysu, ale menu jest wyświetlane w okienku konspektu dokumentu:

Editing a menu at design time

Do kontrolki menu można dodać maksymalnie cztery elementy menu. Można je skonfigurować w okienku Właściwości . Można ustawić następujące atrybuty:

  • Tytuł i
  • Obraz niestandardowy lub
  • Obraz systemu: Akceptuj, Dodaj, Blokuj, Odrzucaj, Informacje, Być może, Więcej, Wycisz, Wstrzymaj, Odtwarzaj, Powtarzaj, Wznów, Udostępnij, Shuffle, Speaker, Kosz.

Utwórz obiekt Action , wybierając sekcję Zdarzenia w okienku Właściwości i wpisując nazwę metody akcji. Metoda częściowa zostanie utworzona w kodzie, który można zaimplementować w klasie kontrolera interfejsu, w następujący sposób:

partial void MenuItemTapped ()
{
    Console.WriteLine ("A menu item was tapped.");
}

Obrazy niestandardowe

Podobnie jak w przypadku obrazów kart w systemie iOS, obrazy elementów menu wymagają nieprzezroczystego wzorca z kanałem alfa, który umożliwia wyświetlanie tła.

Aby uzyskać najlepszą wydajność, należy dodać obrazy używane do menu w projekcie aplikacji zegarka (a nie w projekcie rozszerzenia aplikacji zegarka).

Zmienianie elementów menu

Dodawanie w czasie wykonywania

Nie można spowodować Menu dodania elementu do kontrolera interfejsu w czasie wykonywania, chociaż kolekcja MenuItems może być zmieniana programowo. AddMenuItem Użyj metody , jak pokazano:

AddMenuItem (WKMenuItemIcon.Accept, "Yes", new ObjCRuntime.Selector ("tapped"));

Interfejs API zestawu watch Kit platformy Xamarin.iOS wymaga selector obecnie elementu dla AdMenuItem metody , która powinna być zadeklarowana w następujący sposób:

[Export("tapped")]
void MenuItemTapped ()
{
    Console.WriteLine ("The dynamically added 'Yes' menu item was tapped.");
}

Usuwanie w czasie wykonywania

Metodę ClearAllMenuItems można wywołać, aby usunąć wszystkie elementy menu dodane programowo.

Nie można wyczyścić elementów menu skonfigurowanych w scenorysie.