Normalerweise haben Sie auf jeder Registerkarte von a UITabBar
ein kleines Bild und einen Titel, der die Registerkarte benennt. Das Bild wird oben auf der Registerkarte positioniert / zentriert, um den Titel darunter aufzunehmen. Meine Frage ist: Wenn Sie eine Registerkartenleiste mit nur einem Bild und ohne Titel haben möchten, gibt es eine Möglichkeit, das Bild nach unten zu verschieben, damit es besser in der Registerkarte zentriert wird?
Ich benutze (siehe unten) derzeit:
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
Ich würde es jedoch vorziehen, ein größeres Bild ohne Titel zu verwenden. Wenn ich das Bild im Moment größer als etwa 70 Pixel bei 2x mache, beginnt es, von der Oberseite des Bildes abzuheben, UITabBar
während unten viel ungenutzter Platz verbleibt.
quelle
Sie können dies auch über das Storyboard tun. Wählen Sie Ihr Tabbaritem aus, gehen Sie zum Größeninspektor und weisen Sie die entsprechenden Einfügungen zu.
* Demonstriert auf Xcode, Version 7.3.1 (7D1014)
quelle
Machen Sie eine Unterklasse von
UITabBarController
und in seinerviewDidLoad
:Swift 3:
quelle
AppDelegate
funktioniert auch, aber es ist offensichtlich nicht besser, als es zu unterordnen. Sie können jedoch Ihre eigenen Vorlieben haben :)Wenn Sie Xamarin verwenden, funktioniert dies:
quelle
Das hat bei mir funktioniert
Swift 4
quelle
SWIFT 3.0
Sie können Bild-Sets einstellen, oben, links, unten und rechts entsprechend festlegen.
quelle
Für iOS 11 müssen Sie die TraitCollection- Methode außer dem Festlegen von ImageInsets überschreiben. Bitte fügen Sie die Methode in Ihre untergeordnete UITabBarController-Klasse ein
quelle
return UITraitCollection(traitsFrom: [ super.traitCollection, UITraitCollection(horizontalSizeClass: .compact)])
hat den Trick für mich gemacht.In Swift 4.2 ,
UIEdgeInsetsMake
wird depricated, stattdessen sollten wir nutzenUIEdgeInsets
,quelle