 
     fileprivate func clearTouchDownInside() {
         touchingDownInside = false
-        forceTouchDownInside = false
     }
 
     fileprivate func boundsContain(_ touches: Set<UITouch>) -> Bool {


import UIKit

class TappableView: UIView {

    fileprivate var touchingDownInside: Bool = false
    fileprivate var forceTouchDownInside: Bool = false
    fileprivate var alreadyTapped: Bool = false

    fileprivate let dimmedView: UIView
    fileprivate var previousTransform: CGAffineTransform = .identity
    let contentView: UIView
    var tapped: (() -> Void)?
    var forceTapped: (() -> Void)?

    convenience init() {
        self.init(frame: .zero)

        touchingDownInside = boundsContain(touches)
        if touchingDownInside {
            animateTap()
        } else {
            undoTapAnimation()
        }
