// Author: smilelance
// From: http://blog.csdn.net/smilelance
# Import <uikit/uikit. h>
@ Interface pdecheckbox: uibutton
{
Bool ischecked;
}
-(ID) initwithcenter :( cgpoint) center;
-(Bool) ischecked;
-(Void) setcheckstate :( bool) checked;
-(Void) switchcheckstate;
@ End
# Import "pdecheckbox. H"
# Define image_checked @ "checkbox_gray_sel.png"
# Define image_unchecked @ "checkbox_gray.png"
@ Implementation pdecheckbox
-(ID) initwithframe :( cgrect) Frame
{
Self = [Super
Initwithframe: frame];
If (Self ){
// Initialization code
}
Return self;
}
-(ID) initwithcenter :( cgpoint) Center
{
// Uiimage * imgchecked = [uiimage imagenamed: image_checked];
Uiimage * imgunchecked = [uiimageimagenamed: image_unchecked];
Cgsize size = imgunchecked. size;
Cgrect frame = cgrectmake (center. x-size.width/1, Center. y-size.height/2,
Size. Width, size. Height );
Self = [Super
Initwithframe: frame];
If (Self ){
// Initialization code
[Selfsetimage: imgunchecked
Forstate: uicontrolstatenormal];
Ischecked = no;
[Selfaddtarget: selfaction: @ selector (switchcheckstate) forcontrolevents: uicontroleventtouchupinside];
}
Return self;
}
-(Bool) ischecked
{
Returnischecked;
}
-(Void) switchcheckstate
{
[Selfsetcheckstate :! Ischecked];
}
-(Void) setcheckstate :( bool) checked
{
If (checked! = Ischecked ){
Ischecked = checked;
If (ischecked ){
[Selfsetimage: [uiimageimagenamed: image_checked] forstate: uicontrolstatenormal];
} Else {
[Selfsetimage: [uiimageimagenamed: image_unchecked] forstate: uicontrolstatenormal];
}
}
}
@ End