TimePicker-Elementauswahl unter iOS

Beispiel herunterladen Das Beispiel herunterladen

Diese iOS-plattformspezifischen Steuerelemente, wenn die Elementauswahl in einem TimePickererfolgt, sodass der Benutzer angeben kann, dass die Elementauswahl beim Durchsuchen von Elementen im Steuerelement oder erst dann erfolgt, wenn die Schaltfläche Fertig gedrückt wird. Sie wird in XAML verwendet, indem die TimePicker.UpdateMode angefügte Eigenschaft auf einen Wert der UpdateMode Enumeration festgelegt wird:

<ContentPage ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
       <TimePicker Time="14:00:00"
                   ios:TimePicker.UpdateMode="WhenFinished" />
       ...
    </StackLayout>
</ContentPage>

Alternativ kann es über C# mithilfe der Fluent-API verwendet werden:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

timePicker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);

Die TimePicker.On<iOS> -Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die TimePicker.SetUpdateMode -Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific -Namespace wird verwendet, um zu steuern, wann die Elementauswahl erfolgt, wobei die UpdateMode Enumeration zwei mögliche Werte bereitstellt:

  • Immediately – Die Elementauswahl tritt auf, wenn der Benutzer Elemente im TimePickerdurchsucht. Dies ist das Standardverhalten in Xamarin.Forms.
  • WhenFinished – Die Elementauswahl erfolgt nur, nachdem der Benutzer die Schaltfläche Fertig im TimePickergedrückt hat.

Darüber hinaus kann die SetUpdateMode -Methode verwendet werden, um die Enumerationswerte durch Aufrufen der UpdateMode -Methode umzuschalten, die den aktuellen UpdateModezurückgibt:

switch (timePicker.On<iOS>().UpdateMode())
{
    case UpdateMode.Immediately:
        timePicker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);
        break;
    case UpdateMode.WhenFinished:
        timePicker.On<iOS>().SetUpdateMode(UpdateMode.Immediately);
        break;
}

Das Ergebnis ist, dass ein angegebenes UpdateMode auf das TimePickerangewendet wird, wodurch gesteuert wird, wann die Elementauswahl erfolgt:

Screenshot der TimePicker-Updatemodi