【问题标题】:Back Button in navigation controller导航控制器中的后退按钮
【发布时间】:2011-11-29 08:32:04
【问题描述】:

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

更新:

谢谢各位!但我最终实现的答案是:

@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)];

}//对我来说很满意

@结束

【问题讨论】:

  • 上面的答案只是在导航项的默认后退按钮中加入了颜色以及导航栏的背景图像。

标签: iphone ios xcode uinavigationcontroller


【解决方案1】:
  • 使用您自己的UIImage 创建一个UIButton 来模仿您想要的形状。
  • UIImage 必须是可拉伸类型,也就是说,您可以将 leftCapWidth 设置为后退箭头的大小
  • UIButton 的标题设置为您喜欢的任何名称
  • 使用您的新按钮作为自定义视图创建一个新的UIBarButtonItem
  • 将此设置为您的 navigationItems leftBarButtonItem 属性。

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

【讨论】:

    【解决方案2】:

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

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

    让我解释一下上面的两个陈述。

    1. 您希望在字符串中包含的文本。
    2. sizewithfont 方法将允许您计算大小。

    在这里,sizeOfBack.width 将给我由 14System 大小的字符串获得的宽度。

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

    【讨论】:

      【解决方案3】:

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

      See NSString UIKit Additions Reference

      【讨论】:

        猜你喜欢
        • 2012-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多