我下载并运行ESTabBarController很好,但我不知道为什么当我创建自己的项目并使用示例中的代码时,我的大按钮仍然很小??
ios - Swift ESTabBarController大中央按钮失败-LMLPHP
下面的图片也是我的期望
ios - Swift ESTabBarController大中央按钮失败-LMLPHP
这是我的密码
AppDelegate.swift批准

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

视图控制器.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
}

知道吗?

最佳答案

尝试使用自定义选项卡栏并将按钮添加到选项卡栏的中心Like This
如果要使用ESTabBarController,请执行以下步骤。
步骤1:
下载ESTabBarController的示例项目并在项目中安装pod "ESTabBarController-swift"
步骤2:
将示例项目中的所有资产复制到现有项目中
步骤3:
从示例项目中复制类
注意-如果出现错误“No such module'pop'”
ExampleBasicContentView”然后删除该行并
移除或安装pod pop
步骤4:
在情节串连板中Embbed navigationController中的ExampleBouncesContentView并将ExampleIrregularityContentView类分配给navigationController
步骤5:
导入ExampleNavigationController并在ExampleIrregularityBasicContentView类中添加func playMaskAnimation
viewController类中添加以下粘贴代码

  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
    }

您可以找到demohere
截图:
ios - Swift ESTabBarController大中央按钮失败-LMLPHP

10-08 16:26