工具栏背景图像不会调整大小

时间:2015-01-09 20:36:49

标签: ios objective-c xcode image toolbar

我正在尝试使用可调整大小的图像作为我的工具栏背景图像,但由于某种原因,代码将无法正常工作。以下是我的图片尺寸:

Missions.png         (320x64)
Missions@2x.png      (640x128)
Missions@3x.png      (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 *'类型的参数

2 个答案:

答案 0 :(得分:1)

就像错误消息所示 - 在该行中,您发送了UIImage类消息,该消息需要字符串参数为图像。相反,您的代码应该是

[toolbar setBackgroundImage:resizableBackground...

其他一些事情:

  • 在您设置backgroundImage值的行上,您对imageNamed的调用:不需要" .png"最后。
  • 您的可调整大小的图片并非真正可调整大小:0,0,0,0的限制内容没有意义
  • 您可以使用资产目录轻松完成此操作。它的代码少了一点,对imageNamed的简单调用:将返回一个可调整大小的图像

答案 1 :(得分:0)

是的UIImage imageNamed:将您的图像名称作为NSString

[UIImage imageNamed:@"missions.png"]