UIButton子类用于自定义图像?

时间:2011-11-25 08:19:36

标签: iphone uibutton

如果我有一个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];
    }
}

2 个答案:

答案 0 :(得分:2)

UIButton有几种可能的状态 - 正常,突出显示和选择状态,您可以为每个状态分配单独的图像。然后在操作方法中只需切换按钮的选定状态,它将为您处理图像更改:

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

答案 1 :(得分:0)

是的,如果您想要做的是在每次新闻发布后更改按钮的特定状态,那就是您应该做的事情。