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.
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:
È 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 MenuItem
codice.
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.