     }
     
     var componentsSidePaddingSum: CGFloat {
-        return componentsWidthSum - componentsMaxContentWidthSum
+        return componentsWidthSum
+                - (componentsMaxContentWidthSum + componentsContentSeparateWidthSum)
     }
     
     public override init(frame: CGRect) {

        if componentsWidthEqual {
            return componentsWidthSum / CGFloat(components.count)
        } else {
            return component.maxContentWidth + componentSidePaddingSum(of: component)
        }
    }
    

    func labelFrame(withComponentIndex index: Int) -> CGRect {
        let component = components[index]
        let x = leftComponentsWidth(withComponentIndex: index)
                + componentSeparateWidth * CGFloat(index)
                + componentWidth(of: component)
                - component.labelNameWidth
                - componentSidePadding(of: component)
        let y = bounds.height / 2.0 - rowHeight / 2.0
        
        return CGRect(x: x, y: y, width: component.labelNameWidth, height: rowHeight)
    }
    
    func setLabels() {
