     fileprivate func createButtons(platform: UIView) -> [UIButton] {
         var buttons = [UIButton]()
 
-        let step: Float = 360.0 / Float(buttonsCount)
+        let step = getArcStep()
         for index in 0 ..< buttonsCount {
 
-            let angle: Float = Float(index) * step
+            let angle: Float = startAngle + Float(index) * step
             let distance = Float(bounds.size.height / 2.0)
             let buttonSize: CGSize
             if let subButtonsRadius = self.subButtonsRadius {

            return
        }

        let step: Float = 360.0 / Float(buttonsCount)
        for index in 0 ..< buttonsCount {
            guard case let button as CircleMenuButton = buttons[index] else { continue }
            let angle: Float = Float(index) * step
            if isShow == true {
                delegate?.circleMenu?(self, willDisplay: button, atIndex: index)

                button.rotatedZ(angle: angle, animated: false, delay: Double(index) * showDelay)
                button.showAnimation(distance: distance, duration: duration, delay: Double(index) * showDelay)
            } else {

    @IBInspectable open var distance: Float = 100
    /// Delay between show buttons
    @IBInspectable open var showDelay: Double = 0
    /// Start angle of the circle
    @IBInspectable open var startAngle: Float = 0
    /// End angle of the circle
    @IBInspectable open var endAngle: Float = 360

    // Pop buttons radius, if nil use center button size
    open var subButtonsRadius: CGFloat?
    
