iOS 振动反馈(UIImpactFeedbackGenerator / UINotificationFeedbackGenerator)

来源:互联网 发布:西班牙淘宝 编辑:程序博客网 时间:2024/04/29 04:51

iOS 振动反馈

//MARK:- 振动反馈 ///** UIImpactFeedbackGenerator style 具备三种振动方式 */public enum UIImpactFeedbackStyle : Int {    case light    case medium    case heavy}class func impactFeedback() {        if #available(iOS 10.0, *) {            let generator = UIImpactFeedbackGenerator(style: .heavy)            generator.impactOccurred()        }}///** UINotificationFeedbackGenerator 同样具备三种振动方式 */public enum UINotificationFeedbackType : Int {    case success    case warning    case error}class func impactFeedback() {    if #available(iOS 10.0, *) {                let generator = UINotificationFeedbackGenerator()                generator.notificationOccurred(.success)            }}

统一成一个方法

先声明一个枚举

public enum FeedbackType: Int {    case light    case medium    case heavy    case success    case warning    case error    case none}

实现

  class func impactFeedback(style: FeedbackType) {        if #available(iOS 10.0, *) {            switch style {            case .light:                let generator = UIImpactFeedbackGenerator(style: .heavy)                generator.impactOccurred()            case .medium:                let generator = UIImpactFeedbackGenerator(style: .medium)                generator.impactOccurred()            case .heavy:                let generator = UIImpactFeedbackGenerator(style: .heavy)                generator.impactOccurred()            case .success:                let generator = UINotificationFeedbackGenerator()                generator.notificationOccurred(.success)            case .warning:                let generator = UINotificationFeedbackGenerator()                generator.notificationOccurred(.warning)            case .error:                let generator = UINotificationFeedbackGenerator()                generator.notificationOccurred(.error)            default:                break            }        }    }
原创粉丝点击