RQExerciseOptionCell.m 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. //
  2. // RQExerciseOptionCell.m
  3. // SDJK
  4. //
  5. // Created by 张嵘 on 2021/8/12.
  6. //
  7. #import "RQExerciseOptionCell.h"
  8. @interface RQExerciseOptionCell ()
  9. @property (nonatomic, readwrite, strong) RQExerciseOptionItemViewModel *viewModel;
  10. @property (weak, nonatomic) IBOutlet UIButton *optionBtn;
  11. @property (weak, nonatomic) IBOutlet UILabel *optionLabel;
  12. @end
  13. @implementation RQExerciseOptionCell
  14. #pragma mark - PublicMethods
  15. + (instancetype)cellWithTableView:(UITableView *)tableView {
  16. static NSString *ID = @"RQExerciseOptionCell";
  17. RQExerciseOptionCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  18. if (!cell) {
  19. cell = [self rq_viewFromXib];
  20. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  21. cell.optionBtn.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.16].CGColor;
  22. }
  23. return cell;
  24. }
  25. - (void)bindViewModel:(RQExerciseOptionItemViewModel *)viewModel {
  26. _viewModel = viewModel;
  27. [self.optionBtn setTitleNormal:viewModel.title];
  28. self.optionLabel.font = [UIFont systemFontOfSize:RQ_Exercise_Module.exerciseFontSize];
  29. self.optionLabel.attributedText = viewModel.optsString;
  30. switch (viewModel.exerciseOptionItemType) {
  31. case RQExerciseOptionItemType_Correct_CorrectOption: {
  32. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  33. if (_viewModel.exerciseType == RQExerciseType_Recitation) {
  34. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  35. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_TEXT_COLOR_GREEN size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  36. } else {
  37. [self.optionBtn setBackgroundImage:RQImageNamed(@"CorrectOption") forState:UIControlStateNormal];
  38. }
  39. }
  40. break;
  41. case RQExerciseOptionItemType_Error_CorrectOption: {
  42. if ([viewModel.exerciseModel.answer containsString:@"-"]) {
  43. if ([viewModel.exerciseModel.userAnswer containsString:viewModel.optsString.string]) {
  44. [self.optionBtn setBackgroundImage:RQImageNamed(@"CorrectOption") forState:UIControlStateNormal];
  45. } else {
  46. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  47. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_TEXT_COLOR_GREEN size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  48. }
  49. } else {
  50. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  51. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_TEXT_COLOR_GREEN size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  52. }
  53. // self.optionLabel.textColor = RQ_MAIN_TEXT_COLOR_GREEN;
  54. }
  55. break;
  56. case RQExerciseOptionItemType_Correct_ErrorOption: {
  57. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  58. [self.optionBtn setBackgroundImage:RQStringIsEmpty(viewModel.title)? RQImageNamed(@"ErrorOption") : [UIImage qmui_imageWithColor:RQ_MAIN_TEXT_COLOR_RED size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  59. // self.optionLabel.textColor = RQ_MAIN_TEXT_COLOR_RED;
  60. }
  61. break;
  62. case RQExerciseOptionItemType_Error_ErrorOption: {
  63. if ([viewModel.exerciseModel.answer containsString:@"-"]) {
  64. if ([viewModel.exerciseModel.userAnswer containsString:viewModel.optsString.string]) {
  65. [self.optionBtn setBackgroundImage:RQImageNamed(@"ErrorOption") forState:UIControlStateNormal];
  66. } else {
  67. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  68. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_TEXT_COLOR_RED size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  69. }
  70. } else {
  71. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  72. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_TEXT_COLOR_RED size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  73. // self.optionLabel.textColor = RQ_MAIN_TEXT_COLOR_RED;
  74. }
  75. }
  76. break;
  77. case RQExerciseOptionItemType_Multiple_Primary: {
  78. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_WHITE forState:UIControlStateNormal];
  79. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_COLOR size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  80. // self.optionLabel.textColor = RQ_MAIN_COLOR;
  81. }
  82. break;
  83. default: {
  84. [self.optionBtn setTitleColor:RQ_MAIN_TEXT_COLOR_1 forState:UIControlStateNormal];
  85. [self.optionBtn setBackgroundImage:[UIImage qmui_imageWithColor:RQ_MAIN_BACKGROUNDCOLOR size:CGSizeMake(30, 30) cornerRadius:15] forState:UIControlStateNormal];
  86. // self.optionLabel.textColor = RQ_MAIN_TEXT_COLOR_1;
  87. }
  88. break;
  89. }
  90. }
  91. #pragma mark - SystemMethods
  92. - (void)awakeFromNib {
  93. [super awakeFromNib];
  94. // Initialization code
  95. }
  96. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  97. [super setSelected:selected animated:animated];
  98. // Configure the view for the selected state
  99. }
  100. /// type 0对1错2默认3多选题点后后变色 . */
  101. //- (void)setItem:(AnswerItem *)Item {
  102. // _item = Item;
  103. // //0对1错2默认3多选题点后后变色
  104. // if (Item.type == 0) {
  105. // self.optionLabel.textColor = RQ_MAIN_TEXT_COLOR_1;
  106. //
  107. // }else if (Item.type == 1){
  108. // self.optionLabel.textColor = UIColor.redColor;
  109. //
  110. // }else if (Item.type == 2){//默认和多选取消选中结果后变色
  111. // self.optionLabel.textColor = RQ_MAIN_TEXT_COLOR_1;
  112. // }else if (Item.type == 3){
  113. // self.optionLabel.textColor = RQ_MAIN_COLOR;
  114. // }
  115. // if (Item.picname.length > 1) {
  116. // [self.optionBtn setBackgroundImage:RQImageNamed(Item.picname) forState:UIControlStateNormal];
  117. // [self.optionBtn setTitleNormal:(Item.type == 3)? Item.picname : @""];
  118. // } else {
  119. // [self.optionBtn setBackgroundImage:(Item.type == 3)? [UIImage imageWithColor:RQ_MAIN_COLOR size:CGSizeMake(30, 30)] : RQImageNamed(Item.picname) forState:UIControlStateNormal];
  120. // [self.optionBtn setTitleNormal:Item.picname];
  121. // }
  122. //
  123. // self.optionLabel.text = Item.text;
  124. //}
  125. @end