         constraint.isActive = true
     }
     
+    class func setOptional(width: CGFloat, view: UIView) {
+        
+        let constraint = NSLayoutConstraint(item: view, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: width)
+        constraint.priority = nonMandatoryConstraintPriority
+        constraint.isActive = true
+    }
+    
     class func setInCenter(view: UIView, subview: UIView, margins: Bool) {
         
         NSLayoutConstraint(item: view, attribute: margins ? .leadingMargin : .leading, relatedBy: .lessThanOrEqual, toItem: subview, attribute: .leading, multiplier: 1, constant: 0).isActive = true

        return ACStackAlertListView2(views: Array(views2), width: width)
    }
    
    var alertView: UIView!
    var actionsView: UIView!
    var callBlock:((ACAlertActionProtocolBase) -> Void)!
    
    func set(alertView: UIView, actionsView: UIView, callBlock:@escaping (ACAlertActionProtocolBase) -> Void) -> Void {
        self.alertView = alertView
        self.actionsView = actionsView
        self.callBlock = callBlock
        

    open var cornerRadius: CGFloat = 16
    var separatorHeight: CGFloat = 0.5
    
    var alertListsProvider: ACAlertListViewProvider = StackViewProvider()
    
    var itemsAlertList: ACAlertListViewProtocol?
    var actionsAlertList: ACAlertListViewProtocol?
