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. UITabBarist 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 selectedund unselectedsind UIImageObjekte Ihrer Wahl. Wenn Sie möchten, dass sie eine flache Farbe haben, besteht die einfachste Lösung darin, eine UIViewmit der gewünschten Farbe zu erstellen backgroundColorund sie dann UIImagemit Hilfe von QuartzCore in eine zu rendern. Ich verwende die folgende Methode in einer Kategorie UIView, um eine UIImagemit 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 UITextAttributeTextColorerstellen möchten, stellen Sie einfach klar ein und fügen Sie Ihren Text in die selectedund unselectedBilder aus Teil (2) ein.