2015-01-09 3 views
0

Я пытаюсь использовать изменяемое по размеру изображение в качестве фонового изображения панели инструментов, но по какой-то причине код не будет работать. Вот мои размеры изображения:Панель инструментов background image wont resize

Missions.png   (320x64) 
[email protected]  (640x128) 
[email protected]  (1242x195) 

Вот мой код:

-(void)viewWillAppear:(BOOL)animated{ 

    UIToolbar *toolbar = [[UIToolbar alloc] init]; 
    toolbar.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 64); 

    UIImage *backgroundImage = [UIImage imageNamed:@"Missions.png"]; 
    UIImage *resizableBackground = [backgroundImage resizableImageWithCapInsets:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)]; 
-----[toolbar setBackgroundImage:[UIImage imageNamed:resizableBackground] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; ----------------------------- 

    [self.view addSubview:toolbar]; 

} 

Я получаю предупреждение на пунктирной линии на «resizableBackground», который гласит: Несовместимые типы указателей отправки 'UIImage * для параметра типа 'NSString *'

+0

[Панель setBackgroundImage: resizableBackground forToolbarPosition: UIToolbarPositionAny barMetrics: UIBarMetricsDefault]; – Sandeep

ответ

1

Как и в сообщении об ошибке, в этой строке вы отправляете сообщение класса UIImage, которое ожидает строковый параметр изображения. Вместо этого, ваш код должен быть

[toolbar setBackgroundImage:resizableBackground... 

Несколько других вещей, хотя:

  • На линии, где вы установите значение BackgroundImage, ваш призыв к imageNamed: не нуждается в «.png» в конце.
  • Ваше изменяемое размер изображение на самом деле не изменяется: вставки крышки 0,0,0,0 не имеют смысла
  • Вы можете сделать это проще, используя Каталог активов. Это немного меньше кода, простой вызов imageNamed: вернется с изменяемым изображение
0

Да UIImage imageNamed: берет имя своего образа как NSString

[UIImage imageNamed:@"missions.png"]