     internal var buttonsContainerHeightConstraintInitialConstant:CGFloat!
     
     internal var selectionIndicatorHeightConstraint:NSLayoutConstraint!
+    
+    internal var centerButtonOverlay: AZTabBarButton!
     
     /*
      * MARK: - Private Properties

import UIKit
import AVFoundation
import EasyNotificationBadge

public typealias AZTabBarAction = () -> Void


            }else{
                color = self.selectedColor ?? UIColor.black
            }

            if i == centerIndex {
                button.isHidden = true
                centerButtonOverlay.customizeForTabBarWithImage(self.tabIcons[i],
                                                                highlightImage: highlightedImage,
                                                                selectedColor: color,
                                                                highlighted: isHighlighted,
                                                                defaultColor: self.defaultColor ?? UIColor.gray,
                                                                highlightColor: self.highlightColor ?? UIColor.white,
                                                                ignoreColor: ignoreIconColors)
                customizeCenterButtonBackground(button: self.centerButtonOverlay)
            } else {
                button.customizeForTabBarWithImage(self.tabIcons[i],
                           highlightImage: highlightedImage,
                           selectedColor: color,
                           highlighted: isHighlighted,
                           defaultColor: self.defaultColor ?? UIColor.gray,
                           highlightColor: self.highlightColor ?? UIColor.white,
                           ignoreColor: ignoreIconColors)
            }
        }
    }
    
    private var backLayer: CALayer?
    
    private func customizeCenterButtonBackground(button: AZTabBarButton) {
        if let plusImgView = button.imageView {
            let imgSize = plusImgView.frame.size
            let halfSize: CGFloat = (min( imgSize.width/2, imgSize.height/2)) * 1.2
            let backSize = imgSize.width * 1.2
            
            if backLayer == nil {
                backLayer = CALayer()
                backLayer!.backgroundColor = buttonsBackgroundColor.cgColor
                backLayer!.cornerRadius = halfSize
                backLayer!.shadowColor = #colorLiteral(red: 0.1215686277, green: 0.01176470611, blue: 0.4235294163, alpha: 1).cgColor
                backLayer!.shadowOpacity = 0.35
                backLayer!.shadowRadius = 1.5
                backLayer!.shadowOffset = CGSize(width: 0, height: -2.5)
            }
            if backLayer!.superlayer == nil {
                button.layer.insertSublayer(backLayer!, at: 0)
            }
            
            var imgLayerFrame = plusImgView.layer.frame
            imgLayerFrame.size.width *= 1.17
            imgLayerFrame.size.height *= 1.17
            imgLayerFrame.origin.x -= (imgLayerFrame.size.width - plusImgView.layer.frame.size.width) / 2
            imgLayerFrame.origin.y -= (imgLayerFrame.size.height - plusImgView.layer.frame.size.height) / 2
            backLayer!.frame = imgLayerFrame
        }
    }
    
    private func createButton(forIndex index:Int)-> UIButton{
        let button = AZTabBarButton(type: .custom)
        button.tag = index
        button.imageView?.contentMode = .scaleAspectFit
        if index != centerIndex {
            button.delegate = self
            button.isExclusiveTouch = true
            button.addTarget(self, action: #selector(self.tabButtonAction(button:)), for: .touchUpInside)
        }
        return button
    }
    
