2012-04-13 72 views
0

我對iOS編程非常陌生。 我正在嘗試將工具欄背景設置爲自定義圖像。 我也使用故事板。 我該怎麼做? 我是否在UI Kit框架中編輯UIToolbar?我是否需要更改Storyboard中的某些內容?iOS5工具欄背景圖片

感謝,

+1

沒有ü嘗試任何事情,如果是,那麼張貼代碼 – WaaleedKhan 2012-04-13 16:12:53

回答

3

您可以使用UIToolbar的內置-setBackgroundImage:forToolbarPosition:barMetrics:方法:

// portrait 
[yourToolbar setBackgroundImage:[UIImage imageNamed:@"YourToolbarBkg-Portrait.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 

// landscape 
[yourToolbar setBackgroundImage:[UIImage imageNamed:@"YourToolbarBkg-Landscape.png"] forToolbarPosition:UIToolbarPositionAny barMetrics: UIBarMetricsLandscapePhone]; 
  • YourToolbarBkg-Portrait.png將是人像模式
  • YourToolbarBkg-Landscape.png 320x44 BKG圖像將是橫向模式廣告480x32 BKG圖像。
1

相反編輯UIToolBar,爲什麼不創建一個同樣大小和皮膚的UIView無論你如何想?如果你是新人,這會更容易。

或者,如果你想覆蓋UIToolbar:

@implementation UIToolbar (CustomImage) 
- (void)drawRect:(CGRect)rect { 
    UIImage *image = [UIImage imageNamed: @"image.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 
+0

我將首先嚐試的UIView:

NAV_BAR_BACKGROUND可以如下定義。但除此之外,我將它添加到uitoolbar.h? – 2012-04-13 16:37:58

+1

我在最近的應用程序中使用了這種方法,創建了一個UIView,該UIView具有我想要的沒有UIToolbar限制的Loo-and-feel,它具有根據Apple HIG的特定用途。 – MystikSpiral 2012-04-13 16:51:19

2

UIToolbar從UIView的繼承。這只是爲我工作:

[topBar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:BAR_BKG_IMG]] autorelease] atIndex:0]; 

修訂

頂欄------是UIToolBar u的使用

使用此代碼,其中u創建烏爾UIToolBar的出口它實現了UIToolbar .. 類加告訴我yru使用工具欄什麼烏爾主要目的爲它

+0

我要插入什麼文件?對不起,我對ios完全陌生... – 2012-04-13 16:38:22

0

對於ToolBars和NavBars具有正確的faff和背景圖像。我知道設置NavBar和ToolBar的背景圖像通常是一個輕而易舉的事情。但是,當你展示模態VC時,出於某種瘋狂的原因,在添加NavBar並且你改變背景圖像時,它看起來尺寸增加了一倍。改變高度有奇怪的結果。

我的問題是我在我的應用程序中使用NavController的地方,但需要一個模態視圖來說明它的一個或兩個方面。夠簡單。但是,我需要一個帶有完成按鈕的NavBar或ToolBar類型的頭文件來將VC彈出堆棧。再次,不是一個問題。但我需要NavBar或ToolBar與我的應用程序中的其他任何地方相同。

我在一個工具欄上安頓下來,看到VC被模態呈現。所以,我的工具欄以典型的蘋果藍色坐着。很好,但不是我的應用程序的其餘部分看起來如何,每個導航欄使用了黑色圖像。使用iOS 5外觀代理,我更改了ToolBar的背景圖像。這工作。但是,除非我的UIImage完全符合工具欄所預期的比例和尺寸,否則我就是在泡菜。圖像根本看起來不正確。所以,我決定創建一個UIIMageView,在那裏我可以控制內容模式,然後在子工具欄上插入一個子視圖。

看看我的代碼如下。

UIImageView *toolbarImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:NAV_BAR_BACKGROUND]]; 
    [toolbarImageView setFrame:[self.IBOToolBar bounds]]; 
[toolbarImageView setContentMode:UIViewContentModeScaleAspectFill]; 
[self.IBOToolBar insertSubview:toolbarImageView atIndex:1]; 

這是有點絨毛,但我希望這有助於有人改變他們的工具欄上的圖像。

#define NAV_BAR_BACKGROUND @"navBarBlackMattDarkSquare.png"