Pulsanti in Xamarin.iOS
In iOS la UIButton
classe rappresenta un controllo pulsante.
Le proprietà di un pulsante possono essere modificate a livello di codice o con Interface Builder di Xcode.
Creazione di un pulsante a livello di codice
È possibile creare un oggetto UIButton
con poche righe di codice.
Creare un'istanza di un pulsante e specificarne il tipo:
UIButton myButton = new UIButton(UIButtonType.System);
Il tipo del pulsante viene specificato da una
UIButtonType
proprietà:UIButtonType.System
- Pulsante per utilizzo genericoUIButtonType.DetailDisclosure
- Indica la disponibilità di informazioni dettagliate, in genere relative a un elemento specifico in una tabellaUIButtonType.InfoDark
- Indica la disponibilità delle informazioni di configurazione; colore scuroUIButtonType.InfoLight
- Indica la disponibilità delle informazioni di configurazione; colore chiaroUIButtonType..AddContact
- Indica che è possibile aggiungere un contattoUIButtonType.Custom
- Pulsante personalizzabile
Per altre informazioni sui diversi tipi di pulsante, vedere:
- Sezione Tipi di pulsante personalizzati di questo documento
- Ricetta dei tipi di pulsante
- Linee guida per l'interfaccia umana iOS di Apple.
Definire le dimensioni e la posizione del pulsante:
myButton.Frame = new CGRect(25, 25, 300, 150);
Impostare il testo del pulsante. Usare il metodo , che richiede il
SetTitle
testo e unUIControlState
valore per lo stato del pulsante:myButton.SetTitle("Hello, World!", UIControlState.Normal);
I tipi di stato del pulsante sono elencati di seguito:
UIControlState.Normal
UIControlState.Highlighted
UIControlState.Disabled
UIControlState.Selected
UIControlState.Focused
UIControlState.Application
UIControlState.Reserved
Per altre informazioni sullo stile di un pulsante e sull'impostazione del testo, vedere:
- Sezione Applicazione di stili a un pulsante di questo documento
- Ricetta del testo del pulsante Imposta.
Gestione di un tocco di pulsante
Per rispondere a un tocco di pulsante, fornire un gestore per l'evento del TouchUpInside
pulsante:
myButton.TouchUpInside += (sender, e) => {
DoSomething();
};
Nota
TouchUpInside
non è l'unico evento pulsante disponibile. UIButton
è una classe figlio di UIControl
, che definisce molti eventi diversi.
Applicazione di stili a un pulsante
UIButton
I controlli possono esistere in diversi stati, ognuno specificato da un UIControlState
valore , Normal
, Disabled
Focused
, , Highlighted
e così via. A ogni stato può essere assegnato uno stile univoco, specificato a livello di codice o con progettazione iOS.
Nota
Per un elenco completo di tutti i UIControlState
valori, vedere UIKit.UIControlState enumeration
Documentazione.
Ad esempio, per impostare il colore del titolo e il colore dell'ombreggiatura per UIControlState.Normal
:
myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);
Il codice seguente imposta il titolo del pulsante su una stringa con attributi (stilizzata) per UIControlState.Normal
e UIControlState.Highlighted
:
var normalAttributedTitle = new NSAttributedString(buttonTitle, foregroundColor: UIColor.Blue, strikethroughStyle: NSUnderlineStyle.Single);
myButton.SetAttributedTitle(normalAttributedTitle, UIControlState.Normal);
var highlightedAttributedTitle = new NSAttributedString(buttonTitle, foregroundColor: UIColor.Green, strikethroughStyle: NSUnderlineStyle.Thick);
myButton.SetAttributedTitle(highlightedAttributedTitle, UIControlState.Highlighted);
Tipi di pulsanti personalizzati
I pulsanti con un UIButtonType
di Custom
non hanno stili predefiniti. Tuttavia, è possibile configurare l'aspetto del pulsante impostando un'immagine per i diversi stati:
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand.png"), UIControlState.Normal);
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand_Highlight.png"), UIControlState.Highlighted);
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand_On.png"), UIControlState.Selected);
A seconda che l'utente stia toccando o meno il pulsante, verrà eseguito il rendering come una delle immagini seguenti (UIControlState.Normal
UIControlState.Highlighted
rispettivamente e UIControlState.Selected
stati):
Per altre informazioni sull'uso dei pulsanti personalizzati, vedere usare un'immagine per la ricetta di un pulsante .