     private let kDefaultTitleToMessageSpacing: CGFloat = 10.0
     private let kDefaultMessageBottomMargin: CGFloat = 20.0
     private let kDefaultDimAlpha: CGFloat = 0.4
-    
-    
+    private let kDefaultAppearTime = 0.2
+    private let kDefaultDisappearTime = 0.1
+
+
     // MARK: Private Properties
+
     private var contentView: UIView?
     private var buttons: [UIButton] = []
     private var backgroundImageView: UIImageView?

    public var clickedButtonAction: ((_ buttonIndex: Int) -> (Void))? // all buttons
    public var clickedCancelButtonAction: (() -> Void)? // for cancel button
    public var clickedOtherButtonAction: ((_ buttonIndex: Int) -> (Void))? // sometimes you want to handle the other button click event but don't want to write if/else in clickedButtonAction closure, use this property
    
    // MARK: Constants
    
    private let kSeparatorWidth: CGFloat = 0.5

    private var title: String?
    private var message: String?
    private var buttonTitles: [String] = []
    private var viewWidth: CGFloat = 0
    private var viewHeight: CGFloat = 0
    
