RQExercisExplainCell.m 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. //
  2. // RQExercisExplainCell.m
  3. // JSJP
  4. //
  5. // Created by 张嵘 on 2022/7/2.
  6. //
  7. #import "RQExercisExplainCell.h"
  8. @interface RQExercisExplainCell ()
  9. @property (nonatomic, readwrite, strong) RQExercisExplainItemViewModel *viewModel;
  10. @property (weak, nonatomic) IBOutlet UILabel *errorRateLabel;
  11. @property (weak, nonatomic) IBOutlet UIButton *starOneBtn;
  12. @property (weak, nonatomic) IBOutlet UIButton *starTwoBtn;
  13. @property (weak, nonatomic) IBOutlet UIButton *starThreeBtn;
  14. @property (weak, nonatomic) IBOutlet UIButton *starFourBtn;
  15. @property (weak, nonatomic) IBOutlet UIButton *starFiveBtn;
  16. @property (weak, nonatomic) IBOutlet YYLabel *explainLabel;
  17. @end
  18. @implementation RQExercisExplainCell
  19. #pragma mark - PublicMethods
  20. + (instancetype)cellWithTableView:(UITableView *)tableView {
  21. static NSString *ID = @"RQExercisExplainCell";
  22. RQExercisExplainCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  23. if (!cell) {
  24. cell = [self rq_viewFromXib];
  25. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  26. }
  27. return cell;
  28. }
  29. - (void)bindViewModel:(RQExercisExplainItemViewModel *)viewModel {
  30. // @weakify(self)
  31. _viewModel = viewModel;
  32. _errorRateLabel.text = [NSString stringWithFormat:@"%.1f%%",viewModel.exerciseModel.ydtQuestionModel.error_rate * 100];
  33. switch (viewModel.exerciseModel.ydtQuestionModel.diff_degree) {
  34. case 0: {
  35. _starOneBtn.selected = NO;
  36. _starTwoBtn.selected = NO;
  37. _starThreeBtn.selected = NO;
  38. _starFourBtn.selected = NO;
  39. _starFiveBtn.selected = NO;
  40. break;
  41. }
  42. case 1: {
  43. _starOneBtn.selected = YES;
  44. _starTwoBtn.selected = NO;
  45. _starThreeBtn.selected = NO;
  46. _starFourBtn.selected = NO;
  47. _starFiveBtn.selected = NO;
  48. break;
  49. }
  50. case 2: {
  51. _starOneBtn.selected = YES;
  52. _starTwoBtn.selected = YES;
  53. _starThreeBtn.selected = NO;
  54. _starFourBtn.selected = NO;
  55. _starFiveBtn.selected = NO;
  56. break;
  57. }
  58. case 3: {
  59. _starOneBtn.selected = YES;
  60. _starTwoBtn.selected = YES;
  61. _starThreeBtn.selected = YES;
  62. _starFourBtn.selected = NO;
  63. _starFiveBtn.selected = NO;
  64. break;
  65. }
  66. case 4: {
  67. _starOneBtn.selected = YES;
  68. _starTwoBtn.selected = YES;
  69. _starThreeBtn.selected = YES;
  70. _starFourBtn.selected = YES;
  71. _starFiveBtn.selected = NO;
  72. break;
  73. }
  74. case 5: {
  75. _starOneBtn.selected = YES;
  76. _starTwoBtn.selected = YES;
  77. _starThreeBtn.selected = YES;
  78. _starFourBtn.selected = YES;
  79. _starFiveBtn.selected = YES;
  80. break;
  81. }
  82. default:
  83. break;
  84. }
  85. RAC(self.explainLabel, attributedText) = [[RACObserve(viewModel, explainString) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread];
  86. }
  87. #pragma mark - SystemMethods
  88. - (void)awakeFromNib {
  89. [super awakeFromNib];
  90. // Initialization code
  91. }
  92. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  93. [super setSelected:selected animated:animated];
  94. // Configure the view for the selected state
  95. }
  96. @end