子类简单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

首先,当我在界面构建器中将类设置为一个按钮时,当我启动应用程序时,我没有看到任何东西,直到我按下这个不可见的按钮。

第二件事是图像看起来比原来的

如果能帮忙就太好了!谢谢!

试试你的东西- (void)awakeFromNib。在子类中定义此方法。当你在xib中分配你的自定义类时,这个方法将被调用,并在那里应用你的逻辑。

最新更新