         scrollView.setContentOffset(point, animated: animated)
     }
 
-    public func set(selectedIndex index: Int, animated: Bool = true) {
+    public func set(selectedIndex index: Int, animated: Bool = true, silently: Bool = false) {
+        if silently {
+            silenceIndexUpdates = true
+        }
+
         scroll(toIndex: index, animated: animated)
-        markItemAsSelected(at: index)
+
+        silenceIndexUpdates = false
     }
 
     private func markItemAsSelected(at index: Int) {

    private let sliderVelocityCoefficient: Double
    private let defaultSelectedIndex: Int
    private var didSetDefault = false

    var delegate: PickerViewDelegate?


        scrollView.contentInset = UIEdgeInsets(top: 0, left: self.xContentInset, bottom: 0, right: self.xContentInset)

        if !didSetDefault {
            set(selectedIndex: defaultSelectedIndex, animated: false, silently: true)
            didSetDefault = true
        } else {
            set(selectedIndex: selectedIndex, animated: false)
