     /// The locale used for numeric presentation. (defaults to current locale)
     public var locale = Locale.current {
         didSet {
-            updateValue(animated: false)
+            updateAppearance(animated: false)
             resize()
         }
     }

    /// Number of digits to display to the right of the decimal separator (defaults to `0`)
    @IBInspectable public var fractionDigits: Int = 0 {
        didSet {
            updateValue(animated: false)
            resize()
        }
    }

        picker.bounds.size = pickerSize
        frame.size = pickerSize
        picker.frame = bounds
    }

    /**
     Recalculates `displayString` and `componentsString` and refreshes the picker view. Called whenever a property
     of the `NumericPicker` changes.

     - parameter animated: whether to animate the changes to the picker's components (default: `true`)
     */
    func updateAppearance(animated: Bool = true) {
        displayString = updatedDisplayString(value: value, fractionDigits: fractionDigits)
        componentsString = updatedComponentString(value: value,
                                                  intDigits: minIntegerDigits,
                                                  fractionDigits: fractionDigits)

        picker.reloadAllComponents()
        var index = 0

        for char in componentsString.characters {
            // Row is the numeric value of the digit string, or zero for separators
            let row = Int(String(char)) ?? 0
            picker.selectRow(row, inComponent: index, animated: animated)
            index += 1
        }
    }

    /**
