导航控制器中的后退按钮

发布于 2024-12-07 18:52:02 字数 886 浏览 0 评论 0原文

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

更新:

谢谢大家!但我最终实现的答案是这样的:

@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

Its a very basic question - but i could not find the answer to it anywhere.
I would like a back button like the default one that shows up in a navigation bar, but with a image in the background.
Even with customization, how to calculate the size/length of the button as per the title?
Thanks a ton for the help,in advance!

UPDATE:

Thanks guys! but the answer that i finally implemented was this:

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

// use a custom color for the back button which i got using the digital color meter on my nav bar image :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)];

}//worked satisfactorily for me

@end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

扭转时空 2024-12-14 18:52:02
  • 使用您自己的 UIImage 创建一个 UIButton 来模仿您想要的形状。
  • UIImage 必须是可拉伸类型,也就是说,您可以将 leftCapWidth 设置为后退箭头的大小
  • 设置 UIButton 的标题为您喜欢的任何内容
  • 使用新按钮作为自定义视图创建一个新的 UIBarButtonItem
  • 将其设置为您的 navigationItemleftBarButtonItem 属性。

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

  • Create a UIButton using your own UIImage to mimic the shape you want.
  • The UIImage must be a stretchable type, that is, you would set the leftCapWidth to be the size of your back arrow
  • Set the UIButton's title to whatever you like
  • Create a new UIBarButtonItem using your new button as a custom view
  • Set this to your navigationItems leftBarButtonItem property.

The button will automatically size to fit your title.

倾其所爱 2024-12-14 18:52:02

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

查看 NSString UIKit 添加参考

Use sizeWithFont: NSString method to calculate the size of the title.

See NSString UIKit Additions Reference

王权女流氓 2024-12-14 18:52:02

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

 NSString *str=@"Back";

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

我来解释一下上面的两个说法。

  1. 您想要在字符串中包含的文本。
  2. sizewithfont 方法将允许您计算尺寸。

在这里,sizeOfBack.width 将为我提供 14System 大小的字符串获取的宽度。

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

To find out the width of specific text, you may use following methods.

 NSString *str=@"Back";

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

Let me explain above two statements.

  1. the text that you want to have in your string.
  2. sizewithfont method will allow you to calculate the size.

Here, sizeOfBack.width will give me the width acquired by 14System sized string.

Hope it helps to you. let me know by comments, if you have yet doubts regarding this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文