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

Toolbar background image wont resize

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

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 *'

类型的参数

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

[UIImage imageNamed:@"missions.png"]

就像错误消息所说的那样 - 在该行中,您发送的 UIImage class 消息需要一个字符串参数和一个图像。相反,您的代码应该是

[toolbar setBackgroundImage:resizableBackground...

还有一些其他事情:

  • 在设置 backgroundImage 值的那一行,您对 imageNamed: 的调用最后不需要“.png”。
  • 您的可调整大小的图片并不是真正可调整大小的:0,0,0,0 的大写插入没有意义
  • 您可以使用资产目录让这一切变得更容易。代码少了一点,简单调用 imageNamed: would return a resizable image