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
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];
// 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
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];
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.