Я пытаюсь добавить тактильные ощущения в свое приложение так же, как если бы вы перешли к настройке устройства iPhone и переключились в режим полета, это очень ЛЕГКИЙ тактильный эффект. Я хочу добиться такого же эффекта.
Я сделал также, как показано ниже: https://github.com/xamarin/ios-samples/blob/master/ios10/HapticFeedback/HapticFeedback/ViewController.cs
Но это не работает!
partial void ImpactAction(Foundation.NSObject sender)
{
// Initialize feedback
var impact = new UIImpactFeedbackGenerator(UIImpactFeedbackStyle.Heavy);
impact.Prepare();
// Trigger feedback
impact.ImpactOccurred();
}
Да, я вызываю это, используя: ImpactAction(btnToggle);
Когда вы говорите, что это «не работает», что именно не работает? Ожидаемый уровень обратной связи? Нет обратной связи вообще? на какой модели устройства вы его примеряете? так далее...
отзывов нет вообще! @SushiHangover
@Divyesh_008 Divyesh_008 Вы не указали, что это за устройство... У него есть Taptic Engine? Если вы не пробовали вместо этого использовать UIFeedbackGenerator... также вы можете проверить через UIDevice, какой тип поддержки обратной связи имеет устройство...
Я использую его на устройстве iPhone 6 и iPhone 7. Это работает только с iPhone-X и Xs-Max? как я уже сказал, я чувствую тактильные ощущения, когда переключаю кнопку режима полета в настройках устройства, которые я хочу создать. Я использовал тактильные ощущения, но это не дает никаких результатов! @SushiHangover
@Divyesh_008 В iPhone «6s» и «6s PLUS» появился первый тактильный движок (гораздо «слабее» по своей выходной силе), но в 7 появился более крупный активатор, поскольку он должен был имитировать нажатие кнопки «Домой», см. ответь на это.
Вы можете проверить, есть ли у устройства тактильный движок, и соответствующим образом скорректировать свою обратную связь:
switch ((UIDevice.CurrentDevice.ValueForKey(new NSString("_feedbackSupportLevel")) as NSNumber).Int16Value)
{
case 1:
using (var feedback = new UISelectionFeedbackGenerator())
{
feedback.SelectionChanged();
}
break;
case 2:
using (var feedback = new UIImpactFeedbackGenerator(UIImpactFeedbackStyle.Heavy))
{
feedback.ImpactOccurred();
}
break;
default:
SystemSound.Vibrate.PlayAlertSound();
break;
}
Круто, все работает!! Спасибо, #SushiHangover!!
@Divyesh_008 Рад, что помог. ?
вы на самом деле вызываете ImpactAction откуда-то из своего кода?