Controllo menu watchOS (Forza tocco) in Xamarin

Watch Kit fornisce un movimento Force Touch che attiva un menu quando implementato in una schermata dell'app watch.

Apple Watch che mostra un menu

Risposta al tocco forzato

Se un oggetto Menu è stato implementato per un controller di interfaccia, quando un utente esegue un force touch verrà visualizzato il menu. Se non è stato implementato alcun menu, la schermata viene animata brevemente senza altre azioni.

I touch force non sono associati a un particolare elemento sullo schermo; è possibile collegare un solo menu a un controller di interfaccia e verrà visualizzato indipendentemente dalla posizione in cui si verifica la pressione Force Touch sullo schermo.

È possibile presentare tra una e quattro opzioni di menu.

Aggiunta di un menu

Un Menu oggetto deve essere aggiunto a un InterfaceController oggetto nello storyboard in fase di progettazione. Quando un controllo menu viene trascinato in un controller di interfaccia non è presente alcuna indicazione visiva nell'anteprima dello storyboard, ma il menu viene visualizzato nel riquadro Struttura documento:

Modifica di un menu in fase di progettazione

È possibile aggiungere fino a quattro voci di menu al controllo menu. Possono essere configurati nel riquadro Proprietà . È possibile impostare gli attributi seguenti:

  • Titolo e
  • Immagine personalizzata o
  • Immagine di sistema: Accept, Add, Block, Decline, Info, Maybe, More, Mute, Pause, Play, Repeat, Resume, Share, Shuffle, Speaker, Trash.

Creare un oggetto Action selezionando la sezione Eventi del riquadro Proprietà e digitando il nome per il metodo di azione. Nel codice verrà creato un metodo parziale, che può essere implementato nella classe controller di interfaccia, come illustrato di seguito:

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

Immagini personalizzate

Analogamente alle immagini di tabulazione in iOS, le immagini delle voci di menu richiedono un modello opaco con un canale alfa che consente di visualizzare lo sfondo.

È consigliabile aggiungere le immagini usate per il menu al progetto dell'app watch (non il progetto di estensione dell'app watch) per ottenere prestazioni ottimali.

Modifica delle voci di menu

Aggiunta in fase di esecuzione

Non è possibile aggiungere un oggetto Menu a un controller di interfaccia in fase di esecuzione, anche se la raccolta di oggetti può essere modificata a livello di MenuItemcodice. Usare il AddMenuItem metodo come illustrato:

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

L'API Watch Kit di Xamarin.iOS richiede attualmente un selector per il AdMenuItem metodo , che deve essere dichiarato come segue:

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

Rimozione in fase di esecuzione

Il ClearAllMenuItems metodo può essere chiamato per rimuovere tutte le voci di menu aggiunte a livello di codice.

Impossibile cancellare le voci di menu configurate nello storyboard.