ios自訂checkbox

來源:互聯網
上載者:User

//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/2, 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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.