I used the following code to set the image "Sample" as a background color of my UIToolbar
self.toolbar.layer.contents = (id)[UIImage imageNamed:@"Sample.png"].CGImage;
But it seems the above one does not works with iOS5.1 and the default background color of UIToolbar appeared. I doesn't have any problem with this line in iOS4.
Am I missing something? Please suggest me the reason..
Thanks
// Create resizable images
UIImage *gradientImage44 = [[UIImage imageNamed:@"imageName.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
// Set the background image for *all* UINavigationBars
[[UIToolbar appearance] setBackgroundImage:gradientImage44
forBarMetrics:UIBarMetricsDefault];
Better to use appearance API introduced with iOS 5. May this will help you
The correct way, which works from the app delegate (unlike the solution above) and which is also marked with UI_APPEARANCE_SELECTOR in the header files, is:
[[UIToolbar appearance] setBackgroundImage:bgImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:bgImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsLandscapePhone];
setBackgroundImage:forToolbarPosition:barMetrics: this is used to set the image to use for the background in a given position and with given metrics.,
In your case
// Set the background image for PortraitMode
[self.toolbar setBackgroundImage:[UIImage imageNamed:@"Sample.png"]
forBarMetrics:UIBarMetricsDefault];
// and For LandscapeMode
[self.toolbar setBackgroundImage:[UIImage imageNamed:@"Sample.png"]
forBarMetrics:UIBarMetricsLandscapePhone];