2013-04-08 57 views
0

我將子類UIButton創建一個簡單的複選框行爲。這裏是代碼:子類簡單的UIButton複選框

#import "RadioButton.h" 

@implementation RadioButton 
@synthesize isSelected; 

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ 
[self ChangeButtonState]; 
} 

    -(void)ChangeButtonState{ 
    if (!isSelected) { 
    isSelected = YES; 
    [self setBackgroundImage:[UIImage imageNamed:@"radiobtn_on.png"]  forState:UIControlStateNormal]; 
    } 
    else{ 
    isSelected = NO; 
    [self setBackgroundImage:[UIImage imageNamed:@"radiobtn_off.png"] forState:UIControlStateNormal]; 
    } 
    } 

    -(id)init{ 
    self.adjustsImageWhenHighlighted=YES; 
    self.alpha = 1; 
    [self ChangeButtonState]; 
    isSelected = NO; 
    [self setBackgroundImage:[UIImage imageNamed:@"radiobtn_off.png"] forState:UIControlStateNormal]; 
return self; 
    } 

    - (id)initWithFrame:(CGRect)frame 
    { 

    [self setBackgroundImage:[UIImage imageNamed:@"radiobtn_off.png"] forState:UIControlStateNormal]; 
    isSelected = NO; 
    self = [super initWithFrame:frame]; 
    if (self) { 
    // Initialization code 
    } 
    return self; 
     } 

    /* 
    // Only override drawRect: if you perform custom drawing. 
    // An empty implementation adversely affects performance during animation. 
    - (void)drawRect:(CGRect)rect 
    { 
     // Drawing code 
    } 
    */ 

    @end 

第一,當我在界面生成器的按鈕設置類,當我啓動應用程序,我沒有看到任何東西,直到我打這個無形的按鈕。

的seconed的就是圖像看起來黑暗那麼原來

幫助將是巨大的! 謝謝!

回答

1

試試你的東西 - (void)awakeFromNib。在你的子類中定義這個方法。當你在xib中分配你的自定義類時,這個方法將被調用,並在那裏應用你的邏輯。

+0

第一個問題現在沒問題,在按下按鈕之前,圖片加載好了,當我按下按鈕時,它變得更加黑暗。 – 2013-04-08 07:11:03

+0

你在做錯事 - (id)initWithFrame:(CGRect)frame { [self setBackgroundImage:[UIImage imageNamed:@「radiobtn_off.png」] forState:UIControlStateNormal]; isSelected = NO; self = [super initWithFrame:frame]; if(self){ //初始化代碼 } return self; }初始化自己的bcz後,你總是必須做你的東西,它可能會返回零。 – 2013-04-08 07:21:52

+0

拿到它 代碼從nib移到醒來。但這個「變暗」仍然發生 – 2013-04-08 07:27:16