Swift ESTabBarController 大中心按钮失败

Swift ESTabBarController large center button fail

我下载 运行 ESTabBarController 很好,但我不知道为什么当我创建自己的项目并使用示例中的代码时,我的大按钮仍然很小??

虽然下面的图片来自示例项目,但也是我的期望 这是我的代码

AppDelegate.swift

let TabbarNavigationController = ViewController.customIrregularityStyle(delegate: nil)
self.window?.rootViewController = TabbarNavigationController    

ViewController.swift

static func customIrregularityStyle(delegate: UITabBarControllerDelegate?) -> NavigationController {
    let tabBarController = ESTabBarController()
    tabBarController.delegate = delegate
    tabBarController.title = "Irregularity"
    tabBarController.tabBar.shadowImage = UIImage(named: "transparent")
    tabBarController.tabBar.backgroundImage = UIImage(named: "background_dark")
    tabBarController.shouldHijackHandler = {
        tabbarController, viewController, index in
        if index == 2 {
            return true
        }
        return false
    }
    tabBarController.didHijackHandler = {
        [weak tabBarController] tabbarController, viewController, index in

        DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
            let alertController = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)
            let takePhotoAction = UIAlertAction(title: "Take a photo", style: .default, handler: nil)
            alertController.addAction(takePhotoAction)
            let selectFromAlbumAction = UIAlertAction(title: "Select from album", style: .default, handler: nil)
            alertController.addAction(selectFromAlbumAction)
            let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
            alertController.addAction(cancelAction)
            tabBarController?.present(alertController, animated: true, completion: nil)
        }
    }

    let v1 = ExampleViewController()
    let v2 = ExampleViewController()
    let v3 = ExampleViewController()
    let v4 = ExampleViewController()
    let v5 = ExampleViewController()

    v1.tabBarItem = ESTabBarItem.init(IrregularityBasicContentView(), title: "Home", image: UIImage(named: "home"), selectedImage: UIImage(named: "home_1"))
    v2.tabBarItem = ESTabBarItem.init(IrregularityBasicContentView(), title: "Find", image: UIImage(named: "find"), selectedImage: UIImage(named: "find_1"))
    v3.tabBarItem = ESTabBarItem.init(IrregularityBasicContentView(), title: nil, image: UIImage(named: "photo_verybig"), selectedImage: UIImage(named: "photo_verybig"))
    v4.tabBarItem = ESTabBarItem.init(IrregularityBasicContentView(), title: "Favor", image: UIImage(named: "favor"), selectedImage: UIImage(named: "favor_1"))
    v5.tabBarItem = ESTabBarItem.init(IrregularityBasicContentView(), title: "Me", image: UIImage(named: "me"), selectedImage: UIImage(named: "me_1"))

    tabBarController.viewControllers = [v1, v2, v3, v4, v5]

    let navigationController = NavigationController.init(rootViewController: tabBarController)
    tabBarController.title = "Example"
    return navigationController
}

有什么想法吗?

尝试使用自定义 tabBar 并将您的按钮添加到 tabBar 的中心

如果您想使用 ESTabBarController,请按照以下步骤操作。

第 1 步: 下载ESTabBarController的示例项目并在您的项目

中安装pod "ESTabBarController-swift"

第 2 步: 将示例项目中的所有资产复制到现有项目中

第 3 步: 从示例项目

复制 ExampleBasicContentViewExampleBouncesContentViewExampleIrregularityContentViewExampleNavigationController

NOTE - If you got error “No such module 'pop'” in “ExampleIrregularityBasicContentView” Then remove that line and remove func playMaskAnimation Or install pod pop

第 4 步: 在 StoryBoard 中将您的 viewController 嵌入 navigationController 并将 ExampleNavigationController class 分配给您的 navigationController

第 5 步: 导入 ESTabBarController_swift 并在 AppDelegate class 中添加 UITabBarControllerDelegate 在您的 AppDelegate class

中添加粘贴以下代码
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {


        let tabBarController = ESTabBarController()
        tabBarController.delegate = self
        tabBarController.tabBar.shadowImage = UIImage(named: "transparent")
        tabBarController.tabBar.backgroundImage = UIImage(named: "background_dark")

        tabBarController.shouldHijackHandler = {
            tabbarController, viewController, index in
            if index == 2 {
                return true
            }
            return false
        }

        tabBarController.didHijackHandler = {
            [weak tabBarController] tabbarController, viewController, index in

            DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                let alertController = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)
                let takePhotoAction = UIAlertAction(title: "Take a photo", style: .default, handler: nil)
                alertController.addAction(takePhotoAction)
                let selectFromAlbumAction = UIAlertAction(title: "Select from album", style: .default, handler: nil)
                alertController.addAction(selectFromAlbumAction)
                let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
                alertController.addAction(cancelAction)
                tabBarController?.present(alertController, animated: true, completion: nil)
            }
        }

        let v1 = ViewController()
        let v2 = ViewController()
        let v3 = ViewController()
        let v4 = ViewController()
        let v5 = ViewController()

        v1.tabBarItem = ESTabBarItem.init(ExampleIrregularityBasicContentView(), title: "Home", image: UIImage(named: "home"), selectedImage: UIImage(named: "home_1"))
        v2.tabBarItem = ESTabBarItem.init(ExampleIrregularityBasicContentView(), title: "Find", image: UIImage(named: "find"), selectedImage: UIImage(named: "find_1"))
        v3.tabBarItem = ESTabBarItem.init(ExampleIrregularityContentView(), title: nil, image: UIImage(named: "photo_verybig"), selectedImage: UIImage(named: "photo_verybig"))
        v4.tabBarItem = ESTabBarItem.init(ExampleIrregularityBasicContentView(), title: "Favor", image: UIImage(named: "favor"), selectedImage: UIImage(named: "favor_1"))
        v5.tabBarItem = ESTabBarItem.init(ExampleIrregularityBasicContentView(), title: "Me", image: UIImage(named: "me"), selectedImage: UIImage(named: "me_1"))

        tabBarController.viewControllers = [v1, v2, v3, v4, v5]

        let navigationController = ExampleNavigationController.init(rootViewController: tabBarController)
        self.window?.rootViewController = navigationController

         return true
    }

你可以找到演示 here

截图: