QCheckBox.m 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // EICheckBox.m
  3. // EInsure
  4. //
  5. // Created by ivan on 13-7-9.
  6. // Copyright (c) 2013年 ivan. All rights reserved.
  7. //
  8. #import "QCheckBox.h"
  9. #define Q_CHECK_ICON_WH (18.0)
  10. #define Q_ICON_TITLE_MARGIN (5.0)
  11. @implementation QCheckBox
  12. //@synthesize delegate = _delegate;
  13. //@synthesize checked = _checked;
  14. //@synthesize userInfo = _userInfo;
  15. - (id)initWithDelegate:(id)delegate {
  16. self = [super init];
  17. if (self) {
  18. _delegate = delegate;
  19. self.exclusiveTouch = YES;
  20. [self setBackgroundImage:[UIImage imageNamed:@"sel_nor_wx2"] forState:UIControlStateNormal];
  21. [self setBackgroundImage:[UIImage imageNamed:@"sel_check_wx2"] forState:UIControlStateSelected];
  22. [self setBackgroundImage:[UIImage imageNamed:@"unableCheck_wx2"] forState:UIControlStateDisabled];
  23. [self addTarget:self action:@selector(checkboxBtnChecked) forControlEvents:UIControlEventTouchUpInside];
  24. }
  25. return self;
  26. }
  27. - (void)setColorSelected:(UIColor *)colorSelected {
  28. _colorSelected = colorSelected;
  29. [self setBackgroundImage:[UIImage createImageWithColor:colorSelected] forState:UIControlStateSelected];
  30. }
  31. - (void)setChecked:(BOOL)checked {
  32. if (_checked == checked) {
  33. return;
  34. }
  35. _checked = checked;
  36. self.selected = checked;
  37. if (_delegate && [_delegate respondsToSelector:@selector(didSelectedCheckBox:checked:)]) {
  38. [_delegate didSelectedCheckBox:self checked:self.selected];
  39. }
  40. }
  41. - (void)setFrame:(CGRect)frame {
  42. [super setFrame:frame];
  43. if (self.colorSelected) {
  44. self.layer.masksToBounds = YES;
  45. self.layer.cornerRadius = frame.size.width/2;
  46. }
  47. }
  48. - (void)checkboxBtnChecked {
  49. self.selected = !self.selected;
  50. _checked = self.selected;
  51. if (_delegate && [_delegate respondsToSelector:@selector(didSelectedCheckBox:checked:)]) {
  52. [_delegate didSelectedCheckBox:self checked:self.selected];
  53. }
  54. }
  55. - (CGRect)imageRectForContentRect:(CGRect)contentRect {
  56. return CGRectMake(0, (CGRectGetHeight(contentRect) - Q_CHECK_ICON_WH)/2.0, Q_CHECK_ICON_WH, Q_CHECK_ICON_WH);
  57. }
  58. - (CGRect)titleRectForContentRect:(CGRect)contentRect {
  59. return CGRectMake(Q_CHECK_ICON_WH + Q_ICON_TITLE_MARGIN, 0,
  60. CGRectGetWidth(contentRect) - Q_CHECK_ICON_WH - Q_ICON_TITLE_MARGIN,
  61. CGRectGetHeight(contentRect));
  62. }
  63. - (void)dealloc {
  64. // [_userInfo release];
  65. // _delegate = nil;
  66. // [super dealloc];
  67. }
  68. @end