![]() |
fmx + TTrackbar + Ios + Taptic Feedback
Hallo,
ich bin relativ neu bei der ganzen FMX Geschichte. Heute habe ich ein Tutorial nachgebaut in Delphi 11 das eigentlich für C# Maui Xaml ist. Da viel mir auf als ich die Slider / Trackbars in der Maui version auf meinem Iphone genutzt habe, es ein Haptisches Feedback gibt wenn die Slider auf der Min Position gezogen werden und auf der Max Position. das selbe habe ich dann auch in SwiftUI nachgebaut, genau das selbe verhalten. Die FMX Version hat leider das verhalten nicht und es kommt kein haptisches Feedback. Weiss jemand wie man das Aktivieren oder Ansprechen kann? ( Weiss auch nicht ob ich mich korrekt ausgedrückt habe) Viele Grüße |
AW: fmx + TTrackbar + Ios + Taptic Feedback
Ich bin jetzt nicht sicher, aber glaube kaum dass dies ein Android iOS Standardverhalten ist. Zumindest unter Android musst Du dafür die Vibrate Permission setzen, deshalb glaube ich dass es wohl etwas MAUI spezifisches ist.
Kann man aber leicht selber vibrieren lassen, allerdings könnte es mittlerweile zig verschiedene Formen und Vibrationsmuster von haptischen Feedback geben, hab ich aktuell nicht gecheckt was es alles gibt. Für mich reicht ein kurzes, einmaliges vibrieren immer aus, da bin ich nicht so modern. |
AW: fmx + TTrackbar + Ios + Taptic Feedback
Code:
hm Also das ist schon Standart verhalten von Slidern in iOS.
import SwiftUI
struct ContentView: View { @State private var testValue: Double = 0 var body: some View { VStack { Slider(value: $testValue,in:-100...100, step:1) } .padding() } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } |
AW: fmx + TTrackbar + Ios + Taptic Feedback
Vielleicht funktioniert das so in der Art bei Dir:
Delphi-Quellcode:
uses
Macapi.ObjectiveC // Macapi.CoreFoundation , Macapi.ObjCRuntime // iOS , iOSapi.CocoaTypes , iOSapi.Foundation ; type TVibrate_Haptic_Feedback = (Weak, Medium, Strong); TVibrate_Haptic = class // Haptic Vibrate feedback generation // UIImpactFeedbackStyleLight, UIImpactFeedbackStyleMedium, UIImpactFeedbackStyleHeavy class procedure Execute(const AFeedback : TVibrate_Haptic_Feedback); end; implementation Uses Macapi.CoreFoundation ; const UIImpactFeedbackStyleLight = 0; {$EXTERNALSYM UIImpactFeedbackStyleLight} UIImpactFeedbackStyleMedium = 1; {$EXTERNALSYM UIImpactFeedbackStyleMedium} UIImpactFeedbackStyleHeavy = 2; {$EXTERNALSYM UIImpactFeedbackStyleHeavy} type UIImpactFeedbackStyle = NSInteger; UIFeedbackGeneratorClass = interface(NSObjectClass) ['{6B7EC779-C032-4F7A-B51B-BAF0E4249CE6}'] end; UIFeedbackGenerator = interface(NSObject) ['{5EFF0FE8-F7F1-4443-90B0-94B69C6F9F01}'] procedure prepare; cdecl; end; TUIFeedbackGenerator = class(TOCGenericImport<UIFeedbackGeneratorClass, UIFeedbackGenerator>) end; UIImpactFeedbackGeneratorClass = interface(NSObjectClass) ['{4AD834AB-9CC2-43F2-891B-F0BDD4F03732}'] end; UIImpactFeedbackGenerator = interface(UIFeedbackGenerator) ['{8BFE603E-FFBC-4109-9AAE-62F77ED4CD57}'] function initWithStyle(style: UIImpactFeedbackStyle): Pointer; cdecl; procedure impactOccurred; cdecl; end; TUIImpactFeedbackGenerator = class(TOCGenericImport<UIImpactFeedbackGeneratorClass, UIImpactFeedbackGenerator>) end; // Haptic Vibrate generation // UIImpactFeedbackStyleLight, UIImpactFeedbackStyleMedium, UIImpactFeedbackStyleHeavy class procedure TVibrate_Haptic.Execute(const AFeedback : TVibrate_Haptic_Feedback); var vibrationFeedback: UIImpactFeedbackGenerator; begin vibrationFeedback := TUIImpactFeedbackGenerator.Wrap(TUIImpactFeedbackGenerator.OCClass.alloc); case AFeedback of Weak : vibrationFeedback.initWithStyle( UIImpactFeedbackStyleLight); Medium: vibrationFeedback.initWithStyle( UIImpactFeedbackStyleMedium); Strong: vibrationFeedback.initWithStyle( UIImpactFeedbackStyleHeavy); else vibrationFeedback.initWithStyle( UIImpactFeedbackStyleMedium);; end; vibrationFeedback.impactOccurred; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz