Iphone 自定义图像的子类UIButton?

Iphone 自定义图像的子类UIButton?,iphone,uibutton,Iphone,Uibutton,如果一个UIButton有两个图像(带复选标记的框,不带复选标记的框),我想将UIButton子类化吗?如果是,我如何知道何时按下按钮将两个图像设置为打开/关闭(或选中/未选中)状态 如果我不应该将UIButton子类化,那么每次我想在类中使用复选标记按钮时,我是否都会这样做 .h @property (nonatomic, assign) BOOL isPressed; .m - (IBAction)buttonPressed:(id)sender { isPressed = !

如果一个UIButton有两个图像(带复选标记的框,不带复选标记的框),我想将UIButton子类化吗?如果是,我如何知道何时按下按钮将两个图像设置为打开/关闭(或选中/未选中)状态

如果我不应该将UIButton子类化,那么每次我想在类中使用复选标记按钮时,我是否都会这样做

.h 
@property (nonatomic, assign) BOOL isPressed;

.m

- (IBAction)buttonPressed:(id)sender {
    isPressed = !isPressed;
    if (isPressed) {
        UIImage *checked = [UIImage imageNamed:@"checked.png"];
        [button setImage:checked forState:UIControlStateNormal];
    }
    else {
        UIImage *unchecked = [UIImage imageNamed:@"unchecked.png"];
        [button setImage:unchecked.png forState:UIControlStateNormal];
    }
}

UIButton有几种可能的状态-正常、高亮和选中,您可以为每个状态指定单独的图像。然后,在action方法中,只需切换按钮的选定状态,它将为您处理图像更改:

[button setImage:@"checked.png" forState:UIControlStateSelected];
[button setImage:@"unchecked.png" forState:UIControlStateNormal];
...
- (IBAction)buttonPressed:(id)sender {
    button.selected = !button.selected;
}

是的,如果你想在每次按下按钮后改变按钮的特定状态,那就是你应该做的