2011-10-02 84 views
0

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

UPDATE:

谢谢你们!但我终于实现了答案是这样的:

@implementation UINavigationBar的(UINavigationBarCategory)

- (空)的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

+0

上面的答案只是将导航条中的默认后退按钮和背景图像的颜色合并到导航栏中。 – Prathiba

回答

0
  • 使用您自己的UIImage创建一个UIButton来模拟所需的形状。
  • UIImage必须是可伸缩型,也就是你将设置leftCapWidth是你回来的大小箭头
  • 设置为任何你喜欢的
  • 使用新创建一个新的UIBarButtonItemUIButton的标题按钮作为自定义视图
  • 将此设置为您的navigationItem的s leftBarButtonItem属性。

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

0

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

NSString *[email protected]"Back"; 

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

让我来解释上面的两条语句。

  1. 你想要在你的字符串中的文字。
  2. sizewithfont方法将允许您计算大小。

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

希望它对你有帮助。如果您对此持怀疑态度,请通过评论告诉我。

相关问题