Je suis débutant dans le développement iOS. Ma question est: est-il possible de la position UITabBar en haut et comment?
Je ne peux pas placer mon UITabBar en haut de la vue.
#import "TabController.h"@interfaceTabController()@end@implementationTabController-(void)viewDidLoad
{[super viewDidLoad];self.delegate=self;}-(void)viewWillLayoutSubviews
{[super viewWillLayoutSubviews];[self.tabBar invalidateIntrinsicContentSize];CGFloat tabSize =44.0;UIInterfaceOrientation orientation =[UIApplication sharedApplication].statusBarOrientation;if(UIInterfaceOrientationIsLandscape(orientation)){
tabSize =32.0;}CGRect tabFrame =self.tabBar.frame;
tabFrame.size.height = tabSize;
tabFrame.origin.y =self.view.frame.origin.y;self.tabBar.frame = tabFrame;//Set the translucent property to NO then back to YES to//force the UITabBar to reblur, otherwise part of the//new frame will be completely transparent if we rotate//from a landscape orientation to a portrait orientation.self.tabBar.translucent = NO;self.tabBar.translucent = YES;}-(void)didReceiveMemoryWarning
{[super didReceiveMemoryWarning];}@end
6
Swift3: je atteindre cet objectif par la création d'une classe personnalisée pour UITabBarController:
classCustomTabBarController:UITabBarController{@IBOutlet weak var financialTabBar:UITabBar!override func viewDidLoad(){super.viewDidLoad()//I've added this line to viewDidLoadUIApplication.shared.statusBarFrame.size.height
financialTabBar.frame =CGRect(x:0, y: financialTabBar.frame.size.height, width: financialTabBar.frame.size.width, height: financialTabBar.frame.size.height)}
N'oubliez pas de mettre votre Classe Personnalisée pour TabBarController
Le résultat devrait ressembler à ceci:
4
Ici est un travail swift 3 exemple de aviatorken89 du code.
D'abord créer un nouveau fichier.
Sélectionner la source cocoa touch classe.
Désigner sous-classe de: UITabBarController
Nom de la classe "CustomTabBarController" ou tout ce que vous souhaitez.
Vous pouvez créer un onglet personnalisé bar en le faisant vous-même, mais apple a fait très décourage imitant un système de contrôle pour une fonction qu'il n'était pas à l'origine l'intention de le faire.
Encore une fois, je vous décourager de le faire, parce qu'il viole la cohérence de votre application et du système d'applications. Mais depuis que je suis à elle, nous y voilà:
Personnalisé à la barre d'onglet, vous avez besoin pour créer une vue qui contient plusieurs boutons. Vous avez également besoin d'un conteneur de vue ci-dessous la UITabBar (parce que vous voulez le UITabBar d'être au top). Lorsqu'un bouton est enfoncé, vous modifiez la UIViewController à l'intérieur du conteneur.
Son assez simple, mais bien sûr, son fortement déconseillé.
-2
Si vous voulez quelque chose comme un UITabBar sur le dessus alors que diriez-vous de créer un personnalisé UIView et ajouter n'importe quel nombre de UIButtons. Puis relier certains ViewControllers avec chaque bouton grâce à des Enchaînements. Fait!
Vous n'avez pas besoin de personnaliser le UITabBar. Comme aviatorken89 dit plus tôt, il est contre l'homme de l'interface de ligne directrice.
Est-il possible? Bien sûr, mais il viole la human interface guidelines.
Captures d'écran:
Code:
TabController.h:
TabController.m:
Swift3: je atteindre cet objectif par la création d'une classe personnalisée pour
UITabBarController
:N'oubliez pas de mettre votre Classe Personnalisée pour
TabBarController
Le résultat devrait ressembler à ceci:
Ici est un travail swift 3 exemple de aviatorken89 du code.
Ajoutez le code suivant à la classe.
Si vous utilisez storyboard assurez-vous de changer la barre d'onglets de catégorie pour votre classe personnalisée via "l'Identité de l'inspecteur".
MISE À JOUR IOS 11 QUESTION
le code ci-dessus ne fonctionne pas sur ios 11. voici donc la solution que j'ai trouvé.
Vous pouvez créer un onglet personnalisé bar en le faisant vous-même, mais apple a fait très décourage imitant un système de contrôle pour une fonction qu'il n'était pas à l'origine l'intention de le faire.
Encore une fois, je vous décourager de le faire, parce qu'il viole la cohérence de votre application et du système d'applications. Mais depuis que je suis à elle, nous y voilà:
Personnalisé à la barre d'onglet, vous avez besoin pour créer une vue qui contient plusieurs boutons. Vous avez également besoin d'un conteneur de vue ci-dessous la
UITabBar
(parce que vous voulez leUITabBar
d'être au top). Lorsqu'un bouton est enfoncé, vous modifiez laUIViewController
à l'intérieur du conteneur.Son assez simple, mais bien sûr, son fortement déconseillé.
Si vous voulez quelque chose comme un UITabBar sur le dessus alors que diriez-vous de créer un personnalisé UIView et ajouter n'importe quel nombre de UIButtons. Puis relier certains ViewControllers avec chaque bouton grâce à des Enchaînements. Fait!
Vous n'avez pas besoin de personnaliser le UITabBar. Comme aviatorken89 dit plus tôt, il est contre l'homme de l'interface de ligne directrice.