低于 iOS 10 TapEngine 的适配方案

随着 iPhone7 和 iPhone7 Plus 发布,Apple 为 iOS 10 引入了新的 API UIFeedbackGenerator

UIFeedbackGenerator 有三个子类,分别是

  • UINotificationFeedbackGenerator:方便在通知到来时提供触感
  • UIImpactFeedbackGenerator:方便在用户按压时提供触感
  • UISelectionFeedbackGenerator:方便在控件被点击时提供触感

其它文章有详细描述 UIFeedbackGenerator 的用法,我就不赘述。下面讲一下如果你的工程 deployment target 低于 iOS 10 的时候,如何适配。

声明 UIFeedbackGenerator 对象为 Any

var feedback: Any?

在初始化 UIFeedbackGenerator 对象的地方添加 available 判断,使用的时候强转类型

if #available(iOS 10.0, *) {
     feedback = UISelectionFeedbackGenerator()
     let _feedback = feedback as! UISelectionFeedbackGenerator
     _feedback.prepare()
     feedback.selectionChanged() // 这个调用不一定是在初始化的时候,大家根据自己情况处理
}

你可能感兴趣的:(低于 iOS 10 TapEngine 的适配方案)