How to check if Haptic Engine (UIFeedbackGenerator) is supported

后端 未结 6 1033
星月不相逢
星月不相逢 2020-12-09 03:22

I am wondering how we could check if the new iOS 10 API UIFeebackGenerator is available on the current device. There are some more things we would need to check

6条回答
  •  渐次进展
    2020-12-09 03:55

    This will work for iPhone 7 and Above.

     var count = 0
    
     override func viewDidLoad() {
        super.viewDidLoad()
    
        let myButton = UIButton(frame: CGRect(x: 0, y: 100, width: 100, height: 50))
        myButton.setTitleColor(UIColor.green, for: .normal)
        myButton.setTitle("Press ME", for: .normal)
        myButton.addTarget(self, action: #selector(myButtonTapped), for: .touchUpInside)
        self.view.addSubview(myButton)
    
    }
    
    @objc func myButtonTapped() {
        count += 1
        print("Count \(count)")
    
        switch count {
        case 1:
            let generator = UINotificationFeedbackGenerator()
            generator.notificationOccurred(.error)
    
        case 2:
            let generator = UINotificationFeedbackGenerator()
            generator.notificationOccurred(.success)
    
        case 3:
            let generator = UINotificationFeedbackGenerator()
            generator.notificationOccurred(.warning)
    
        case 4:
            let generator = UIImpactFeedbackGenerator(style: .light)
            generator.impactOccurred()
    
        case 5:
            let generator = UIImpactFeedbackGenerator(style: .medium)
            generator.impactOccurred()
    
        case 6:
            let generator = UIImpactFeedbackGenerator(style: .heavy)
            generator.impactOccurred()
    
        default:
            let generator = UISelectionFeedbackGenerator()
            generator.selectionChanged()
            count = 0
        }
    }
    

提交回复
热议问题