将UIImage设置为UIButton的背景

Xav*_*ero 0 iphone uibutton uiimage ios

以下代码有什么问题:

    UIButton *button = [[UIButton alloc]init];
    CGRect frame = CGRectMake(180, 10, 33, 33);
    button.frame = frame;
    button.tag = 1001;
    UIImage *image = [[[UIImage alloc]init]autorelease];
    image = [UIImage imageNamed:@"icon.png"];
    [button setBackgroundImage:image forState:UIControlStateNormal];
    [image release];
    [button release];
Run Code Online (Sandbox Code Playgroud)

如果这是错误的,它需要纠正的地方,为什么?

dbr*_*vic 6

我看到几个问题:

  1. 您已将autorelease发送到image,然后手动将其释放.
  2. 您已发布按钮,但未将其作为子视图添加到任何内容中.所以基本上,你做了所有这一切.
  3. 您实例化UIImage,然后再次实例化它.在下一行:而不是只做: UIImage *image = [UIImage imageNamed:@"icon.png"]; 和删除UIImage *image = [[[UIImage alloc]init]autorelease];[image release];声明.