RAEditDateCell.m 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //
  2. // RAEditDateCell.m
  3. // Apex And Drivers
  4. //
  5. // Created by Jack on 2018/10/25.
  6. // Copyright © 2018年 USAI. All rights reserved.
  7. //
  8. #import "RAEditDateCell.h"
  9. #import "RAEditDateModel.h"
  10. @interface RAEditDateCell ()<RAEditModelDelegate>
  11. @property (nonatomic,strong) IBOutlet UILabel *titleLabel;
  12. @property (nonatomic,strong) IBOutlet UILabel *dateLabel;
  13. @property (nonatomic,strong) IBOutlet UILabel *startLabel;
  14. @property (nonatomic,strong) IBOutlet UIButton *datePickerBtn;
  15. @end
  16. @implementation RAEditDateCell
  17. - (void)awakeFromNib {
  18. [super awakeFromNib];
  19. // Initialization code
  20. UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClick:)];
  21. [self.contentView addGestureRecognizer:tap];
  22. self.model = nil;
  23. }
  24. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  25. [super setSelected:selected animated:animated];
  26. // Configure the view for the selected state
  27. }
  28. - (void)prepareForReuse {
  29. [super prepareForReuse];
  30. self.model = nil;
  31. self.delegate = nil;
  32. }
  33. - (void)setModel:(RAEditDateModel *)model {
  34. if (_model) {
  35. _model.delegate = nil;
  36. }
  37. _model = model;
  38. if (_model) {
  39. _model.delegate = self;
  40. }
  41. [self refresh];
  42. }
  43. - (void)refresh {
  44. self.titleLabel.text = self.model.title;
  45. self.startLabel.hidden = !self.model.required;
  46. self.dateLabel.text = self.model.display;
  47. self.datePickerBtn.hidden = !self.model.editable;
  48. }
  49. - (void)unbind {
  50. _model = nil;
  51. [self refresh];
  52. }
  53. #pragma mark - Action
  54. - (void)_clickDate {
  55. if (!self.model.editable) {
  56. return;
  57. }
  58. if (self.delegate && [self.delegate respondsToSelector:@selector(dateCell:didClickForModel:)]) {
  59. [self.delegate dateCell:self didClickForModel:self.model];
  60. }
  61. }
  62. - (void)tapClick:(UITapGestureRecognizer *)tap {
  63. [self _clickDate];
  64. }
  65. - (IBAction)datePickerBtnClick:(UIButton *)sender {
  66. [self _clickDate];
  67. }
  68. @end