WaitExamBodyView.m 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. //
  2. // WaitExamBodyView.m
  3. // MusicGradeExam
  4. //
  5. // Created by Kyle on 2020/7/15.
  6. // Copyright © 2020 DayaMusic. All rights reserved.
  7. //
  8. #import "WaitExamBodyView.h"
  9. @interface WaitExamBodyView ()
  10. @property (weak, nonatomic) IBOutlet UIButton *signButton;
  11. @property (weak, nonatomic) IBOutlet UILabel *signDescLabel;
  12. @property (weak, nonatomic) IBOutlet UILabel *classDate;
  13. @property (weak, nonatomic) IBOutlet UILabel *subjectLabel;
  14. @property (weak, nonatomic) IBOutlet UILabel *classTime;
  15. @property (weak, nonatomic) IBOutlet UILabel *waitLabel;
  16. @property (nonatomic, copy) JoinRoomAction callback;
  17. @property (nonatomic, strong) TicketDetailModel *sourceModel;
  18. @property (nonatomic, strong) CAGradientLayer *gradientLayer;
  19. @end
  20. @implementation WaitExamBodyView
  21. - (void)awakeFromNib {
  22. [super awakeFromNib];
  23. [self.signButton.layer insertSublayer:self.gradientLayer atIndex:0];
  24. self.signButton.layer.masksToBounds = YES;
  25. }
  26. - (void)layoutSubviews {
  27. [super layoutSubviews];
  28. //在这里获取frame
  29. if (_gradientLayer) {
  30. _gradientLayer.frame = CGRectMake(0, 0, CGRectGetWidth(self.signButton.frame), CGRectGetHeight(self.signButton.frame));
  31. }
  32. }
  33. + (instancetype)shareInstance {
  34. WaitExamBodyView *view = [[[NSBundle mainBundle] loadNibNamed:@"WaitExamBodyView" owner:nil options:nil] firstObject];
  35. return view;
  36. }
  37. - (void)configMessageSource:(TicketDetailModel *)source {
  38. self.sourceModel = source;
  39. if ([NSString isEmptyString:source.signInTime]) {
  40. self.isSign = NO;
  41. self.signDescLabel.text = @"您还未签到,签到后可进入教室";
  42. }
  43. else {
  44. self.isSign = YES;
  45. self.signDescLabel.text = @"您已签到,请点击下方按钮进入教室";
  46. }
  47. if (self.sourceModel.openFlag == 1) {
  48. [self.joinButton setTitle:@"录播考试" forState:UIControlStateNormal];
  49. }
  50. else {
  51. [self.joinButton setTitle:@"进入教室" forState:UIControlStateNormal];
  52. }
  53. self.canJoinRoom = self.sourceModel.classroomSwitch;
  54. self.classDate.text = [[self.sourceModel.examStartTime componentsSeparatedByString:@" "] firstObject];
  55. self.subjectLabel.text = [NSString returnNoNullStringWithString:self.sourceModel.baseExamName];
  56. self.waitLabel.text = [NSString stringWithFormat:@"%.0f位考生",self.sourceModel.waitNum];
  57. // 时间
  58. NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
  59. dateFormatter.timeZone = [NSTimeZone systemTimeZone];
  60. [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  61. NSDate *beginDate = [dateFormatter dateFromString:source.examStartTime];
  62. NSDate *endDate = [dateFormatter dateFromString:source.examEndTime];
  63. [dateFormatter setDateFormat:@"HH:mm"];
  64. NSString *beginStr = [NSString returnNoNullStringWithString:[dateFormatter stringFromDate:beginDate]];
  65. NSString *endStr = [NSString returnNoNullStringWithString:[dateFormatter stringFromDate:endDate]];
  66. self.classTime.text = [NSString stringWithFormat:@"%@-%@", beginStr, endStr];
  67. }
  68. - (void)setIsSign:(BOOL)isSign {
  69. _isSign = isSign;
  70. if (isSign) {
  71. [self.gradientLayer removeFromSuperlayer];
  72. _gradientLayer = nil;
  73. self.signButton.userInteractionEnabled = NO;
  74. [self.signButton setTitle:@"已签到" forState:UIControlStateNormal];
  75. }
  76. else {
  77. [self.signButton.layer insertSublayer:self.gradientLayer atIndex:0];
  78. self.signButton.userInteractionEnabled = YES;
  79. [self.signButton setTitle:@"签到" forState:UIControlStateNormal];
  80. }
  81. }
  82. - (void)setCanJoinRoom:(BOOL)canJoinRoom {
  83. _canJoinRoom = canJoinRoom;
  84. if (canJoinRoom) {
  85. self.joinButton.userInteractionEnabled = YES;
  86. [self.joinButton setBackgroundColor:THEMECOLOR];
  87. }
  88. else {
  89. self.joinButton.userInteractionEnabled = NO;
  90. [self.joinButton setBackgroundColor:HexRGB(0xcccccc)];
  91. }
  92. }
  93. - (void)operationCallback:(JoinRoomAction)callback {
  94. if (callback) {
  95. self.callback = callback;
  96. }
  97. }
  98. - (IBAction)signAction:(id)sender {
  99. if (self.callback) {
  100. self.callback(JOINROOMACTION_SIGN, self.sourceModel);
  101. }
  102. }
  103. - (IBAction)guideAction:(id)sender {
  104. if (self.callback) {
  105. self.callback(JOINROOMACTION_GUIDE, nil);
  106. }
  107. }
  108. - (IBAction)joinAction:(id)sender {
  109. if (self.callback) {
  110. self.callback(JOINROOMACTION_JOIN, self.sourceModel);
  111. }
  112. }
  113. - (CAGradientLayer *)gradientLayer {
  114. if (!_gradientLayer) {
  115. _gradientLayer = [CAGradientLayer layer];
  116. _gradientLayer.startPoint = CGPointMake(0.5, 0.02);
  117. _gradientLayer.endPoint = CGPointMake(0.5, 0.97);
  118. _gradientLayer.locations = @[@(0),@(1.0)];//渐变点
  119. UIColor *startColor = HexRGB(0xffd1b0);
  120. UIColor *endColor = HexRGB(0xffb378);
  121. [_gradientLayer setColors:@[(id)(startColor.CGColor),(id)(endColor.CGColor)]];//渐变数组
  122. }
  123. return _gradientLayer;
  124. }
  125. /*
  126. // Only override drawRect: if you perform custom drawing.
  127. // An empty implementation adversely affects performance during animation.
  128. - (void)drawRect:(CGRect)rect {
  129. // Drawing code
  130. }
  131. */
  132. @end