Comment créer une barre d'tabs avec une interface user personnalisée dans swift 3.0

Je veux créer une barre d'tabs depuis le storyboard et je la crée mais quand je clique sur la barre d'tabs à ce moment-là, l'image ne s'affiche pas et quelques images je veux une barre d'tabs comme Je veux aimer cette barre de tabulation

et j'ai eu ça

j'ai eu ça

Quand je clique sur n'importe quel élément de la barre d'tabs son affichage comme

mauvaise sortie

Voici mon code que j'utilise dans le controller de vue de profil

class ProfileViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() UIApplication.shared.statusBarStyle = .default self.tabBarController?.tabBar.isHidden = false UITabBar.appearance().tintColor = UIColor.init(patternImage: UIImage.init(named: "ic_home_tab_profile_sel.png")!) // Do any additional setup after loading the view. } } 

Toute aide peut être appréciée. Merci d'avance.

Je suggère d'utiliser ESTabBarControllerExample https://github.com/eggswift/ESTabBarController pour faire ce genre de TabbarController personnalisé. Tout d'abord Télécharger le ESTabbarControllerExample de github. Nous devons utiliser une lettre de class sur. Laissez-moi vous expliquer comment utiliser étape par étape:

  • Première installation de CocoaPods

    1 Ouvrez le terminal et cd ~ to your project directory

    2 Exécutez la command – pod init

    3 Votre podfile doit être utilisé avec – pod "ESTabBarController-swift" et enregistrez-le

    4 Et installez-le avec l'installation de la command de pod install

  • Ouvrir le file projet de .xcworkspace extension

    1 Dans le projet, nous devons append le Content tous les class Swift et pop.framework

    2 N'ajoutez pas pop.framework en utilisant Ajouter un file à. vous devez être ajouté à partir de Framework et append d'autres.

    3 Dans l' import ESTabBarController_swift de tous les files du dossier Contenu import ESTabBarController_swift

  • StoryBord Stuff

    1 Ajouter un controller de navigation ane ajoutez également ExampleNavigationController partir du code d'exemple de EST demo. (Vous pouvez également append les vôtres), mais assurez-vous de définir sa class Swift personnalisée de class de navigation.

  • Code Stuff à AppDelegate.swift

Vous devez faire le code suivant sur le côté didFinishLaunchingWithOptions

  let tabBarController = ESTabBarController() tabBarController.delegate = self 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(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) tabBarController.title = "Example" self.window?.rootViewController = navigationController return true 

Ajoutez des images pour les éléments de la barre d'tabs et d'autres éléments que vous souhaitez utiliser dans les ressources. J'espère que cela vous aidera.

Exemple de projet: https://github.com/nitingohel/CustomTabCenterBig