2012-04-26 3 views
2

Я использовал следующий код для установки изображения «образец», как цвет фона моего UIToolbarУстановка UIToolbar фоновое изображение с iOS5.1

self.toolbar.layer.contents = (id)[UIImage imageNamed:@"Sample.png"].CGImage; 

Но, кажется, выше один не работает с iOS5.1 и появился исходный цвет фона UIToolbar. У меня нет проблем с этой строкой в ​​iOS4.

Я что-то упустил? Пожалуйста, предложите мне причину ..

Благодаря

ответ

4

enter image description here

// 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]; 

Лучше использовать API внешнего вида, введенный с iOS 5. Пусть это поможет вам

+0

Спасибо! Просто обратите внимание, что это должно быть сделано в контроллере представления где-то, я пытался его в делетете приложения, и он не работал некоторое время ... – ekinnear

+0

Любые предложения, как это сделать в AppDelegate для создания различных фоновых панелей инструментов для разных экраны? .. – dreamzor

+0

Посмотрите мое решение для правильного способа сделать это, что также работает с делегатом приложения. –

1

setBackgroundImage:forToolbarPosition:barMetrics: это используется для установки изображения для использования в качестве фона в заданном положении и с заданными показателями.,

В вашем случае

// 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]; 
7

Правильный способ, который работает с делегатом приложения (в отличие от вышеприведенного решения) и который также помечен как UI_APPEARANCE_SELECTOR в файлах заголовков:

[[UIToolbar appearance] setBackgroundImage:bgImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; 
[[UIToolbar appearance] setBackgroundImage:bgImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsLandscapePhone];