 	}
 	
 	open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
+		hapticFeedbackSetup()
 		let touch = touches.first
 		if let location = touch?.location(in: self) {
 			setNewIndex(point: location)

	}
	
	open override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
		if canAutoHide {
			visible = false
		}
	}
	
	internal func _handleGesture(_ gesture: UIGestureRecognizer) {
		let location = gesture.location(in: self)
		setNewIndex(point: location)
		if canAutoHide {

	}
	
}

extension STBTableViewIndex {
	
	fileprivate func hapticFeedbackSetup() {
		if #available(iOS 10.0, *) {
			let feedbackGenerator = UISelectionFeedbackGenerator()
			feedbackGenerator.prepare()
			
			self.feedbackGenerator = feedbackGenerator
		}
	}
	
	fileprivate func hapticFeedbackSelectionChanged() {
		if #available(iOS 10.0, *) {
			if let feedbackGenerator = self.feedbackGenerator as? UISelectionFeedbackGenerator {
				feedbackGenerator.selectionChanged()
				feedbackGenerator.prepare()
			}
		}
	}
	
	fileprivate func hapticFeedbackFinalize() {
		if #available(iOS 10.0, *) {
			self.feedbackGenerator = nil
		}
	}
	
}
