         NotificationCenter.default.removeObserver(self)
     }
     
+    open override func viewDidAppear(_ animated: Bool) {
+        super.viewDidAppear(animated)
+        let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
+        slider.addGestureRecognizer(tap)
+    }
+    
+    func handleTap(_ sender: UIGestureRecognizer) {
+        let pointTapped: CGPoint = sender.location(in: self.view)
+        
+        let positionOfSlider: CGPoint = slider.frame.origin
+        let widthOfSlider: CGFloat = slider.frame.size.width
+        let newValue = ((pointTapped.x - positionOfSlider.x) * CGFloat(slider.maximumValue) / widthOfSlider)
+        
+        CATransaction.begin()
+        CATransaction.setDisableActions(true)
+        slider.value = Int(newValue)
+        // Update UI without animation
+        slider.setNeedsLayout()
+        CATransaction.commit()
+        
+        
+        
+    }
+    
     func applyBorder(to button: UIButton) {
         button.borderWidth = 2
         button.isEnabled = false

    
    @IBOutlet var textLabels: [UILabel]!
    @IBOutlet var stackView: UIStackView!
    
    var visible = false
    

    }
    
    open func setValuesWithSteps(_ steps: Int, current: Int) {
        self.steps = steps
        if self.isViewLoaded {
            self.setValues(0, maximum: steps-1, current: current)
        }else{
