     @IBInspectable public var maxRate: Int = 5
     @IBInspectable public var focusStyle: FocusStyle = .default
 
+    private var isHalfStep: Bool {
+        return halfImage == nil
+    }
     private var stackview: RateStackView?
     private var invisibleStackview: InvisibleFocusStackView?
     private var config: Config?

        }
        if let index = arrangedSubviews.index(of: next) {
            focusedIndex = index
            focusedIndexDidChange?(index)
        }
    }
    override func updateConstraints() {

        }
    }
    private func updateInvisible() {
        if invisibleStackview == nil {
            let v: InvisibleFocusStackView = InvisibleFocusStackView
                .create(config: config!) {
                    [weak self] value in
                    self?.stackview?.value = value
                }
            addSubview(v)
            self.invisibleStackview = v
