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

            return reusingView
        }
        
        let pickerComponent = components[component]
        
        let componentView = UIView()
        let itemView = UIView()
        let itemLabel = UILabel()
        
        itemView.frame = itemViewFrame(of: pickerComponent)
        
        itemLabel.frame = itemLabelFrame(of: pickerComponent)
        itemLabel.attributedText = components[component].attributedItem(index: row)
        itemLabel.textAlignment = .center
        
        componentView.addSubview(itemView)
        itemView.addSubview(itemLabel)
        
        return componentView
    }
    
    private func itemViewFrame(of component: PickerComponent) -> CGRect {
        return CGRect(x: 0.0, y: 0.0, width: componentItemViewWidth(of: component), height: rowHeight)
    }
    
    private func itemLabelFrame(of component: PickerComponent) -> CGRect {
        let maxItemWidth = component.maxItemWidth
        let x = componentItemViewWidth(of: component) - maxItemWidth
        
        return CGRect(x: x, y: 0.0, width: maxItemWidth, height: rowHeight)
    }
    
}

        }
    }
    
    fileprivate func setLabels() {
        labels = components.enumerated().map { index, component in
            let label = UILabel()
            label.attributedText = component.attributedLabel
            label.textAlignment = .center
            
            return label
        }
