     private(set) var trailingConstraint: NSLayoutConstraint = NSLayoutConstraint()
     /// Bar height constraint.
     private(set) var heightConstraint: NSLayoutConstraint = NSLayoutConstraint()
+    private weak var leftKnob: Knob!
+    private weak var rightKnob: Knob!
     
     /**
      Method used to setup a bar. This methods returns all the constraints to be activated.

        
        var constraints: [NSLayoutConstraint] = []
        
        constraints.append(contentsOf: self.bar.setup(leading: self.barLeading,
                                                      trailing: self.barTrailing,
                                                      height: self.barHeight))
        

        ]
        
        return barConstraints
    }
    
    /**
     Overridden hitTest method to support out of bounds view.
     In this case we have to manage the fact that the knobs must be
     draggable also outside of the bar bounds.
     
     - parameter point: the hit point inside the bar.
     - parameter event: the event that caused the hit.
     
     - returns the view that must manage the touch.
     */
    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        
        var pointForTargetView = self.leftKnob.convert(point, from: self)
        
        if self.leftKnob.bounds.contains(pointForTargetView) {
            
            return self.leftKnob.hitTest(pointForTargetView, with:event)
        }
        
        pointForTargetView = self.rightKnob.convert(point, from: self)
        
        if self.rightKnob.bounds.contains(pointForTargetView) {
            
            return self.rightKnob.hitTest(pointForTargetView, with:event)
        }
        
        return self
    }
}

