簡體   English   中英

UIButton的狀態圖

[英]UIButton's image with states

我有UIButton並使用適當的代碼設置其背景圖像。

`[button setImage:self.image forState:UIControlStateNormal]`

當按鈕初始化時,它顯示正確的圖像,但是當狀態為UIControlStateSelected時,我想使圖像消失。

我可以在選擇圖像時更改圖像,但是不知道哪個是正確的功能或在選擇時設置為無圖像的值。

我應該將image alpha設置為0.0嗎?

謝謝!

使用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:nil forState:UIControlStateSelected];

希望這可以幫助!

嘗試[button setSeleted:YES];

如果您要創建一個按鈕,例如檢查清單按鈕。 這是一個示例代碼:

[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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM