Как совместить звук и вибрацию в SwiftUI

#swiftui #haptic-feedback

Вопрос:

Аннотирование onTapGesture активирует звук. Но вибрация не работает. Как реализовать звук и вибрацию вместе?

Почему возникает эта проблема?

 let feedback = UIImpactFeedbackGenerator(style: .soft)

func activeNum() {
    playSound(sound: "casino-chips", type: "mp3")
}

var body: some View {
    ZStack {
        VStack(spacing: 0) {
            LogoView()
            
            Spacer()
            
            Button(action: {
                self.activeNum()
            }) {
                Image(systemName: "heart.fill")
                    .resizable()
                    .frame(width: 100, height: 100, alignment: .center)
                    .foregroundColor(.gray)
//                        .onTapGesture {
//                            feedback.impactOccurred()
//                        }
            }
            
            Spacer()
        }
    }
}
 

Ответ №1:

В своем Button действии называйте и activeNum() то, и impactOccured() другое, а не пытайтесь поместить последнее в отдельное onTapGesture :

 Button(action: {
 self.activeNum()
 feedback.impactOccurred()
}
 

Комментарии:

1. Боже, я должен был написать это в действии, но я забыл. Спасибо!

2. Рад, что это сработало для тебя. Не стесняйтесь принимать/голосовать