xcode 如何更改UINavigationController的背景颜色?

nuypyhwy  于 2022-11-26  发布在  其他
关注(0)|答案(3)|浏览(184)

我可以通过覆盖drawRect来更改UINavigationController的背景图像:实验方法:

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {

    UIImage *img  = [UIImage imageNamed: @"navController.png"];
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
        self.tintColor = [UIColor blueColor];
}

@end

背景和tintColor都是我想要的,但是当尝试设置UIColor类中不存在的颜色时,它失败了,并显示奇怪的颜色:

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {

    UIImage *img  = [UIImage imageNamed: @"navController.png"];
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
        self.tintColor = [UIColor colorWithRed:(26/255) green:(103/255) blue:(159/255)                      alpha:1];
}

@end

如何强制UINavigationBar显示所需的颜色?

**注:**我只是在导航控制器按钮颜色方面有问题,因为背景本身设置为图像。

daolsyd0

daolsyd01#

您需要执行以下操作:

self.tintColor = [UIColor colorWithRed:(26.0f/255.0f) green:(103.0f/255.0f) blue:(159.0f/255.0f) alpha:1.0f];

否则,你在做整数运算,你可能会得到所有的0。使用浮点运算,你会得到你想要的值。

0lvr5msh

0lvr5msh2#

这对我很有效

self.navigationController.navigationBar.backgroundColor= [UIColor colorWithRed:57.0/255.0 green:158.0/255 blue:209.0/255 alpha:1.0];
qf9go6mv

qf9go6mv3#

您也可以用途:
浏览控制器.视图.背景颜色= .yourColor

相关问题