如何复制后退按钮?

4

我知道改变“返回”按钮文本颜色的唯一方法是制作自定义按钮:

self.navigationItem.backBarButtonItem = yourCustomBackButton;

我的问题是:如何创建一个后退按钮,考虑到色调并且与默认的后退按钮完全相同,除了文本的颜色(除非它是白色)?
2个回答

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


我不确定你在做什么,但是你没有改变返回按钮中文本的颜色。你甚至没有在回答中提到返回按钮。回答中也没有提到任何按钮。你确定你正在回答我的问题吗?不要误会,我很感激你的努力,但我看不出这与我的问题有什么关系。 - Erik B
谢谢,但这个想法来自一个叫Brandon Jones的人。我希望我聪明到足以自己想出这些东西。唉。 - Rayfleck
我猜Mike认为你想要使用一张图片作为导航栏的背景,这样你仍然可以使用带有色调的原始栏按钮。使用他的解决方案,您可以为导航栏设置图像,同时对于返回按钮,可以使用任何您想要的色调。 - Wolfgang Schreurs
@Erik - 可能我误解了 - 你可以设置背景的着色颜色,文本颜色已经是白色,它看起来就像默认的返回按钮一样(因为它就是一个)。你想要什么颜色的文本?根据你的问题暗示应该是白色 - 即没有改变。 - Rayfleck
@Mike,我已经更新了问题,希望现在更难误解了。你认为这已经足够了吗?还是我的意思仍然不清楚? - Erik B
显示剩余3条评论

0

无法更改返回按钮的文本颜色。但是,您可以将自定义视图分配给leftBarButtonItem属性。我已经编写了一个简单的项目,展示了如何重新创建标准iOS UI的进入/退出动画。需要一些技巧,但您应该能够将带有标签的按钮分配给自定义视图并更新它。

https://github.com/typeoneerror/BBCustomBackButtonViewController


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接