Die vorhandenen Antworten enthalten einige gute Ideen, viele funktionieren etwas anders, und was Sie auswählen, hängt auch davon ab, auf welche Geräte Sie abzielen und welche Art von Aussehen Sie erzielen möchten. UITabBar
ist notorisch unintuitiv, wenn es darum geht, sein Erscheinungsbild anzupassen, aber hier sind ein paar weitere Tricks, die helfen können:
1). Wenn Sie das glänzende Overlay für einen flacheren Look entfernen möchten, gehen Sie wie folgt vor:
tabBar.backgroundColor = [UIColor darkGrayColor]; // this will be your background
[tabBar.subviews[0] removeFromSuperview]; // this gets rid of gloss
2). Um benutzerdefinierte Bilder auf die Registerkartenschaltflächen festzulegen, gehen Sie wie folgt vor:
for (UITabBarItem *item in tabBar.items){
[item setFinishedSelectedImage:selected withFinishedUnselectedImage:unselected];
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];
}
Wo selected
und unselected
sind UIImage
Objekte Ihrer Wahl. Wenn Sie möchten, dass sie eine flache Farbe haben, besteht die einfachste Lösung darin, eine UIView
mit der gewünschten Farbe zu erstellen backgroundColor
und sie dann UIImage
mit Hilfe von QuartzCore in eine zu rendern. Ich verwende die folgende Methode in einer Kategorie UIView
, um eine UIImage
mit dem Inhalt der Ansicht zu erhalten:
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen]scale]);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
3) Schließlich möchten Sie möglicherweise das Design der Titel der Schaltflächen anpassen. Machen:
for (UITabBarItem *item in tabBar.items){
[item setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor redColor], UITextAttributeTextColor,
[UIColor whiteColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
[UIFont boldSystemFontOfSize:18], UITextAttributeFont,
nil] forState:UIControlStateNormal];
}
Auf diese Weise können Sie einige Anpassungen vornehmen, die jedoch immer noch recht begrenzt sind. Insbesondere können Sie die Position des Texts innerhalb der Schaltfläche nicht frei ändern und für ausgewählte / nicht ausgewählte Schaltflächen keine unterschiedlichen Farben festlegen. Wenn Sie ein spezifischeres Textlayout UITextAttributeTextColor
erstellen möchten, stellen Sie einfach klar ein und fügen Sie Ihren Text in die selected
und unselected
Bilder aus Teil (2) ein.