Zwykle na każdej karcie znajduje UITabBar
się mały obraz i tytuł z nazwą karty. Obraz jest umieszczany / wyśrodkowany w górnej części karty, aby zmieścić tytuł pod spodem. Moje pytanie brzmi: jeśli chcesz mieć tabBar z samym obrazem i bez tytułu, czy istnieje sposób na przesunięcie obrazu w dół, aby lepiej wyśrodkował się w zakładce?
Obecnie używam (patrz poniżej):
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
ale wolałby użyć większego obrazu bez tytułu, w tej chwili, jeśli zrobię obraz większy niż około 70 pikseli @ 2x, zacznie się on od góry UITabBar
, pozostawiając dużo niewykorzystanego miejsca na dole.
źródło
Możesz to również zrobić za pomocą scenorysu. Wybierz swój tabbaritem, przejdź do inspektora rozmiaru i przypisz odpowiednie wstawki.
* Demonstrowany w Xcode, wersja 7.3.1 (7D1014)
źródło
Utwórz podklasę
UITabBarController
i w jejviewDidLoad
:Swift 3:
źródło
AppDelegate
również działa, ale nie jest oczywiście lepsze niż tworzenie podklasy. Możesz jednak mieć własne preferencje :)Jeśli używasz platformy Xamarin, działa to:
źródło
To zadziałało dla mnie
Szybki 4
źródło
SWIFT 3.0
Możesz ustawić zestawy obrazów, ustawić górny, lewy, dolny i prawy zgodnie z projektem.
źródło
W przypadku systemu iOS 11 musisz zastąpić metodę TraitCollection oprócz ustawienia ImageInsets. Dodaj metodę do podklasy UITabBarController
źródło
return UITraitCollection(traitsFrom: [ super.traitCollection, UITraitCollection(horizontalSizeClass: .compact)])
załatwił sprawę dla mnie.W Swift 4.2 ,
UIEdgeInsetsMake
jest depricated, zamiast tego należy użyćUIEdgeInsets
,źródło