2012-04-13 75 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"