Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将“后退”按钮的背景更改为与导航栏相同_Iphone_Ios - Fatal编程技术网

Iphone 将“后退”按钮的背景更改为与导航栏相同

Iphone 将“后退”按钮的背景更改为与导航栏相同,iphone,ios,Iphone,Ios,我正在尝试为导航栏及其按钮实现自定义图像。我设法用这个为我的导航背景获得了正确的设置 - (void)customAppearance { UIImage* NavBG = [UIImage imageNamed:@"header.png"]; [[UINavigationBar appearance] setBackgroundImage:NavBG forBarMetrics:UIBarMetricsDefault]; } 但是,当我尝试为后退按钮或其

我正在尝试为导航栏及其按钮实现自定义图像。我设法用这个为我的导航背景获得了正确的设置

        - (void)customAppearance
{  
    UIImage* NavBG = [UIImage imageNamed:@"header.png"];
    [[UINavigationBar appearance] setBackgroundImage:NavBG forBarMetrics:UIBarMetricsDefault];
}

但是,当我尝试为后退按钮或其他按钮做类似的操作时,它们只是混合在一起(我可以看到后退按钮的文字,但没有后退按钮的轮廓)

这是我的后退按钮

UIImage *backButtonBG = [[UIImage imageNamed:@"header.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonBG forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

我想让它看起来像这样:

我使用一个自定义图像创建了我的着色按钮(请参见末尾的代码),然后将
leftBarButtonim
设置为此按钮

+ (UIBarButtonItem *)createBarButtonItemWithImage:(UIImage *)normalImage highlightedImage:(UIImage *)highlightedImage
{
    UIBarButtonItem *barButtonItemToReturn;
    if (normalImage == nil && highlightedImage == nil)
    {
        return barButtonItemToReturn;
    }
    else if (normalImage != nil)
    {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button setImage:normalImage forState:UIControlStateNormal];

        if (highlightedImage != nil)
        {
            [button setImage:highlightedImage forState:UIControlStateHighlighted];
            [button setFrame:CGRectMake(0, 0, normalImage.size.width, normalImage.size.height)];
        }

        barButtonItemToReturn = [[UIBarButtonItem alloc] initWithCustomView:button];
    }
    return barButtonItemToReturn;
}
如果要添加目标/操作,必须通过以下方式添加:

 [((UIButton*)barButtonItem.customView) addTarget:self selector:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside];

您还可以使用可调整大小的图像,等等。我认为最简单的方法是您也可以为导航栏着色,因为默认情况下,这些栏按钮项目始终使用导航栏的颜色

[[UINavigationBar appearance] setTintColor:[UIColor redColor]];
或者,您可以使用rgb值使用更精确的颜色

[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:val green:val blue:val alpha:1]];

您要在哪个文件中更改“后退”按钮?必须在父导航文件中编辑“后退”按钮。类似于更改按钮的文本。这正是我所需要的,非常简单。谢谢