如何复制后退按钮?

时间:2011-05-05 15:38:05

标签: iphone objective-c ipad back-button textcolor

据我所知,改变后退按钮文字颜色的唯一方法是制作自己的自定义按钮:

self.navigationItem.backBarButtonItem = yourCustomBackButton;

我的问题是:我如何创建一个后退按钮,它将色调颜色考虑在内,看起来与默认后退按钮完全相同,除了文本的颜色(除非它是白色的)?

2 个答案:

答案 0 :(得分:2)

在UINavigationBar中添加一个类别,并在那里设置它的背景颜色。此代码还显示了如何使用图像。

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {

/***
 // use a custom color
 UIColor *color = [UIColor colorWithRed:.455 green:.365 blue:0 alpha:.9];
 3    CGContextRef context = UIGraphicsGetCurrentContext();
 4    CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
 5    CGContextFillRect(context, rect);
 6    self.tintColor = color;
 ***/

// use a custom background image
UIImage *img  = [UIImage imageNamed: [PlistVariables sharedInstance].navbarBackgroundImageName ];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
self.tintColor = [PlistVariables sharedInstance].navbarTintColor;
 }

以下是使用RGB 192,93,0作为背景棕色的一些示例输出:

enter image description here

答案 1 :(得分:0)

实际上无法更改后退按钮的文本颜色。但是,您可以为leftBarButtonItem属性分配自定义视图。我已经整理了一个简单的小项目,展示如何重新创建标准iOS UI的输入/输出动画。需要进行一些黑客攻击,但您应该能够将带有标签的按钮分配给自定义视图并更新。

https://github.com/typeoneerror/BBCustomBackButtonViewController