In der tabbarcontroller-Anwendung haben alle nicht ausgewählten Bildregisterkarten eine graue Farbe, ich möchte sie in weiß ändern.Wie ändert man die graue Farbe von uitabbaritem in uitabbarcontroller?
jede Hilfe wird zu schätzen wissen!
In der tabbarcontroller-Anwendung haben alle nicht ausgewählten Bildregisterkarten eine graue Farbe, ich möchte sie in weiß ändern.Wie ändert man die graue Farbe von uitabbaritem in uitabbarcontroller?
jede Hilfe wird zu schätzen wissen!
Sie müssen Ihren eigenen Controller bauen. Laut Apple-Dokumentation zum Thema "Diese Klasse [UITabBarController] ist nicht für Unterklassen gedacht". Die Dokumente auf dem UITabBarItem sagen, dass wenn Sie ein Bild für die Tab-Leiste liefern "Die Bilder in der Tab-Leiste sind von diesem Bild abgeleitet". Daher wird jedes Bild, das Sie der Tableiste zur Verfügung stellen, manipuliert, damit es dem "normalen" Aussehen eines Tab-Bar-Bildes entspricht.
So können Sie einen UIViewController mit einigen UIButtons als Subviews erstellen und dann das gesamte Look and Feel auf diese Weise verwalten.
IMHO scheint dies eine Menge Arbeit für nicht viel Gewinn.
überprüfen Sie https://github.com/xhan/PlutoLand und führen Sie es aus.
können Sie eine benutzerdefinierte PLTabBarController
Klasse finden, mit der Sie Ihre TabBarItems dort anpassen können.
Sie können von UITabBar erben und die drawRect-Methode überschreiben. Unten ist ein Beispiel, wie es in braun
- (void)drawRect:(CGRect)rect
{
// Drawing code
float baseComponents[] = { 78/255.0, 30/255.0, 0/ 255.0, 1.0 };
// Get current context
CGContextRef context = UIGraphicsGetCurrentContext();
// Fill full rectangle
CGContextSetRGBFillColor(context, baseComponents[0], baseComponents[1], baseComponents[2], baseComponents[3]);
CGContextFillRect(context,rect);
// Draw light line on top
CGContextSetRGBStrokeColor(context, baseComponents[0] + (67/255.0), baseComponents[1] + (67/255.0), baseComponents[2] + (67/255.0), baseComponents[3]);
CGContextMoveToPoint(context, 0, 1);
CGPoint points[] = { CGPointMake(0,1.5),CGPointMake(rect.size.width,1.5) };
CGContextStrokeLineSegments(context, points , 2);
// Create gradient
CGColorSpaceRef myColorspace;
CGGradientRef myGradient;
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
CGFloat components[8] = { baseComponents[0] + (46/255.0), baseComponents[1] + (46/255.0), baseComponents[2] + (46/255.0), baseComponents[3], // Start color
baseComponents[0] + (21/255.0), baseComponents[1] + (21/255.0), baseComponents[2] + (21/255.0), baseComponents[3] }; // End color
myColorspace = CGColorSpaceCreateDeviceRGB();
myGradient = CGGradientCreateWithColorComponents (myColorspace, components,locations, num_locations);
// Draw gradient
CGContextDrawLinearGradient(context, myGradient, CGPointMake(0, 2), CGPointMake(0,rect.size.height/2), 0);
// Clean up
CGColorSpaceRelease(myColorspace);
CGGradientRelease(myGradient);
}
als im Interface Builder Set für TabBar- von UITabBarController in Identity Inspector benutzerdefinierte Klasse gefärbt ist.