     }
 
     /// Returns last arranged view for vertical axis and self for horizontal axis.
-    public override var forLastBaselineLayout: UIView {
+    open override var forLastBaselineLayout: UIView {
         switch axis {
         case .vertical:
             if let last = arrangedSubviews.last {

    }

    /// Updates alignment and distribution constraints.
    public override func updateConstraints() {
        if invalidated {
            invalidated = false
            

 
 See UIStackView documentation for more info.
*/
open class StackView : UIView {
    
    /// The axis along which the arranged views are laid out.
    open var axis: UILayoutConstraintAxis = .horizontal {
        didSet { if axis != oldValue { invalidateLayout() } }
    }
    
    /// The distribution of the arranged views along the stack view’s axis.
    open var distribution: StackViewDistribution = .fill {
        didSet { if distribution != oldValue { invalidateLayout() } }
    }
    
    /// The alignment of the arranged subviews perpendicular to the stack view’s axis.
    open var alignment: StackViewAlignment = .fill {
        didSet { if alignment != oldValue { invalidateLayout() } }
    }
    
    /// The distance in points between the adjacent edges of the stack view’s arranged views.
    open var spacing: CGFloat = 0.0 {
        didSet { if spacing != oldValue { invalidateLayout() } }
    }
    
    /// A Boolean value that determines whether the vertical spacing between views is measured from their baselines.
    open var isBaselineRelativeArrangement = false {
        didSet { if isBaselineRelativeArrangement != oldValue { invalidateLayout() } }
    }
    
