2011-11-25 95 views
0

如果我有两个图像的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

的UIButton有几个可能的状态 - 正常,高亮显示,选择和您可以为每个国家分配独立的图像。然后,在操作方法只需拨动选择状态的按钮,它会为你处理图像变化:

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

是,如果你想要做的是改变每按事件之后按钮的特定状态是什么,这就是你应该做。