导航控制器中的后退按钮

时间:2011-10-02 10:00:16

标签: iphone ios xcode uinavigationcontroller

这是一个非常基本的问题 - 但我无法在任何地方找到答案。 我想要一个后退按钮,就像在导航栏中显示的默认按钮,但在后台有一个图像。 即使使用自定义,如何根据标题计算按钮的大小/长度? 非常感谢您提前帮助!

更新

谢谢你们!但我最终实现的答案是:

@implementation UINavigationBar(UINavigationBarCategory)

- (void)drawRect:(CGRect)rect

{

UIColor *color = [UIColor colorWithRed:(13.0/255.0) green:(183.0/255.0) blue:(255.0/255.0) alpha:1.0];

//使用我的导航栏图像上使用数字色度计的后退按钮的自定义颜色:P

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));

CGContextFillRect(context, rect);
self.tintColor = color;
// use a custom background image for my navigation bar

UIImage *img = [UIImage imageNamed: Navigation_img];

[img drawInRect:CGRectMake(0,0,img.size.width,img.size.height)];

} //令我满意的工作

@end

3 个答案:

答案 0 :(得分:0)

使用sizeWithFont: NSString方法计算标题的大小。

See NSString UIKit Additions Reference

答案 1 :(得分:0)

要查找特定文本的宽度,您可以使用以下方法。

 NSString *str=@"Back";

CGSize sizeOfBack = [str sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(30, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];

让我在上面解释两个陈述。

  1. 您希望在字符串中显示的文字。
  2. sizewithfont方法将允许您计算大小。
  3. 这里,sizeOfBack.width将给出由14System大小的字符串获取的宽度。

    希望对你有所帮助。如果您对此有疑问,请通过评论告诉我。

答案 2 :(得分:0)

  • 使用您自己的UIButton创建UIImage,以模仿您想要的形状。
  • UIImage必须是可伸缩的类型,也就是说,您可以将leftCapWidth设置为后箭的大小
  • UIButton的标题设置为您喜欢的标题
  • 使用新按钮作为自定义视图创建新的UIBarButtonItem
  • 将其设置为navigationItem s leftBarButtonItem属性。

该按钮会自动调整大小以适合您的标题。