1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //
- // SwipeFeedback.swift
- //
- // Created by Jeremy Koch
- // Copyright © 2017 Jeremy Koch. All rights reserved.
- //
- import UIKit
- final class SwipeFeedback {
- enum Style {
- case light
- case medium
- case heavy
- }
-
- @available(iOS 10.0.1, *)
- private var feedbackGenerator: UIImpactFeedbackGenerator? {
- get {
- return _feedbackGenerator as? UIImpactFeedbackGenerator
- }
- set {
- _feedbackGenerator = newValue
- }
- }
-
- private var _feedbackGenerator: Any?
-
- init(style: Style) {
- if #available(iOS 10.0.1, *) {
- switch style {
- case .light:
- feedbackGenerator = UIImpactFeedbackGenerator(style: .light)
- case .medium:
- feedbackGenerator = UIImpactFeedbackGenerator(style: .medium)
- case .heavy:
- feedbackGenerator = UIImpactFeedbackGenerator(style: .heavy)
- }
- } else {
- _feedbackGenerator = nil
- }
- }
-
- func prepare() {
- if #available(iOS 10.0.1, *) {
- feedbackGenerator?.prepare()
- }
- }
-
- func impactOccurred() {
- if #available(iOS 10.0.1, *) {
- feedbackGenerator?.impactOccurred()
- }
- }
- }
|