2011-10-02 99 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大小的字符串獲取的寬度。

希望它對你有幫助。如果您對此持懷疑態度,請通過評論告訴我。

相關問題