Iphone UIButton';美国的国家形象

Iphone UIButton';美国的国家形象,iphone,ios,objective-c,uibutton,uiimage,Iphone,Ios,Objective C,Uibutton,Uiimage,我有ui按钮,并用正确的代码设置其背景图像 `[button setImage:self.image forState:UIControlStateNormal]` 当按钮初始化时它显示正确的图像,但我想在状态为UIControlStateSelected时使图像消失 我能够改变图像时,它被选中,但不知道哪个是正确的功能或值设置为无图像时,选择 我应该将图像alpha设置为0.0 谢谢大家! 尝试[按钮设置图像:nil for状态:UIControlStateSelected] 希望这有帮助

我有
ui按钮
,并用正确的代码设置其背景图像

`[button setImage:self.image forState:UIControlStateNormal]`
当按钮初始化时它显示正确的图像,但我想在状态为
UIControlStateSelected
时使图像消失

我能够改变图像时,它被选中,但不知道哪个是正确的功能或值设置为无图像时,选择

我应该将
图像alpha
设置为
0.0


谢谢大家!

尝试
[按钮设置图像:nil for状态:UIControlStateSelected]


希望这有帮助

使用photoshop,创建具有透明背景的新图像。将其另存为nope.png文件,然后将其拖动到项目中。然后

[button setImage:[UIImage imageNamed:@"nope.png"] forState:UIControlStateSelected];
另一种方法是您需要创建新的图像类别:

@interface UIImage (UIImageFrameColor)
+(UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size;
@end

@implementation UIImage (UIImageFrameColor)
+(UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size
{
    UIGraphicsBeginImageContextWithOptions(size, YES, 0);

    [color set];
    UIBezierPath * path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, size.width, size.height)];
    [path fill];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext ();
    UIGraphicsEndImageContext();

    return image;
}
@end
然后,您需要使图像具有与按钮视图的背景色相同的颜色

    UIImage *bgImage = [UIImage imageWithColor:button.supperview.backgroundColor andSize:button.frame.size];
    [button setImage:bgImage forState:UIControlStateSelected];

尝试[按钮设置:是]

如果您想创建一个类似于检查列表按钮的按钮。这是一个示例代码:

[button setImage:imageNormal forState:UIControlStateNormal];
[button setImage:imageSelected forState:UIControlStateSelected];
.....

-(void)btnButtonPressed:(UIButton*)sender {
    [sender setSelected:!sender.selected];
}

希望这对你有帮助

请检查并重试。这可能对您有用:

[button setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];

我试过这个,我猜当它为零时,它会获取默认图像,即StateNormal中的图像。我的问题不是在StateSelected中获得不同的图像,而是使默认图像完全透明或根本不存在。