Browse Source

试看逻辑,UI基本完成 up

openlockPPP 1 year ago
parent
commit
fda58cfe62
28 changed files with 673 additions and 41 deletions
  1. 20 4
      jiaPei.xcodeproj/project.pbxproj
  2. BIN
      jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate
  3. 1 1
      jiaPei/AppDelegate.m
  4. 23 0
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/Contents.json
  5. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/椭圆blue.png
  6. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/椭圆blue@2x.png
  7. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/椭圆blue@3x.png
  8. 23 0
      jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/Contents.json
  9. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/背景遮罩.png
  10. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/背景遮罩@2x.png
  11. BIN
      jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/背景遮罩@3x.png
  12. 7 0
      jiaPei/Modules/OtherModules/ExerciseModule/Controller/RQTestQuestionsViewController.m
  13. 1 0
      jiaPei/Modules/OtherModules/ExerciseModule/RQExerciseModule.h
  14. 32 0
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.h
  15. 97 0
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.m
  16. 193 0
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.xib
  17. 54 7
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/RQExerciseAnswerCell.m
  18. 99 8
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/RQExerciseAnswerCell.xib
  19. 3 3
      jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/RQExerciseVideoExplainCell.xib
  20. 28 9
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/RQTestQuestionsViewModel.m
  21. 25 0
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/NYExerciseTestingCentreViewModel.h
  22. 45 0
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/NYExerciseTestingCentreViewModel.m
  23. 16 2
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/RQExerciseAnswerItemViewModel.m
  24. 4 1
      jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/RQExerciseOptionItemViewModel.m
  25. 0 3
      jiaPei/Modules/OtherModules/YDTQuestionModule/Model/RQYDTQuestionModel.m
  26. 1 0
      jiaPei/UserInfo.h
  27. 0 2
      jiaPei/UserInfo.m
  28. 1 1
      jiaPei/Utils/Manager/UserManager/RQUserManager.m

+ 20 - 4
jiaPei.xcodeproj/project.pbxproj

@@ -103,6 +103,9 @@
 		90798B122A53E87800E68461 /* NYComplaintListViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90798B112A53E87800E68461 /* NYComplaintListViewModel.m */; };
 		908E6E642A89CCFC0090F00A /* DrCityInfoThree.json in Resources */ = {isa = PBXBuildFile; fileRef = 908E6E632A89CCFC0090F00A /* DrCityInfoThree.json */; };
 		908E6E662A8A08E40090F00A /* cities.json in Resources */ = {isa = PBXBuildFile; fileRef = 908E6E652A8A08E40090F00A /* cities.json */; };
+		90AC53AB2A935EF90073D90F /* NYTestingCentreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AC53A92A935EF90073D90F /* NYTestingCentreCell.m */; };
+		90AC53AC2A935EF90073D90F /* NYTestingCentreCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90AC53AA2A935EF90073D90F /* NYTestingCentreCell.xib */; };
+		90AC53B22A9457070073D90F /* NYExerciseTestingCentreViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AC53B12A9457070073D90F /* NYExerciseTestingCentreViewModel.m */; };
 		90B0F6862A70E9E300B448DC /* QCloudTTS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90B0F6852A70E9E300B448DC /* QCloudTTS.framework */; };
 		90B0F68A2A711C5E00B448DC /* NYVoiceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B0F6892A711C5E00B448DC /* NYVoiceManager.m */; };
 		90BA2E822A3177B50029A54A /* NYTheoryTimeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 90BA2E802A3177B50029A54A /* NYTheoryTimeVC.m */; };
@@ -1831,6 +1834,11 @@
 		90798B112A53E87800E68461 /* NYComplaintListViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYComplaintListViewModel.m; sourceTree = "<group>"; };
 		908E6E632A89CCFC0090F00A /* DrCityInfoThree.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = DrCityInfoThree.json; sourceTree = "<group>"; };
 		908E6E652A8A08E40090F00A /* cities.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = cities.json; sourceTree = "<group>"; };
+		90AC53A82A935EF90073D90F /* NYTestingCentreCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYTestingCentreCell.h; sourceTree = "<group>"; };
+		90AC53A92A935EF90073D90F /* NYTestingCentreCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYTestingCentreCell.m; sourceTree = "<group>"; };
+		90AC53AA2A935EF90073D90F /* NYTestingCentreCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NYTestingCentreCell.xib; sourceTree = "<group>"; };
+		90AC53B02A9457070073D90F /* NYExerciseTestingCentreViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYExerciseTestingCentreViewModel.h; sourceTree = "<group>"; };
+		90AC53B12A9457070073D90F /* NYExerciseTestingCentreViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYExerciseTestingCentreViewModel.m; sourceTree = "<group>"; };
 		90B0F6852A70E9E300B448DC /* QCloudTTS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = QCloudTTS.framework; sourceTree = "<group>"; };
 		90B0F6882A711C5E00B448DC /* NYVoiceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NYVoiceManager.h; sourceTree = "<group>"; };
 		90B0F6892A711C5E00B448DC /* NYVoiceManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NYVoiceManager.m; sourceTree = "<group>"; };
@@ -7663,6 +7671,8 @@
 				D0842DF1288790D900B9C9F7 /* RQExercisExplainItemViewModel.m */,
 				D0B699E7292E102D00DE2C69 /* RQExerciseVideoExplainItemViewModel.h */,
 				D0B699E8292E102D00DE2C69 /* RQExerciseVideoExplainItemViewModel.m */,
+				90AC53B02A9457070073D90F /* NYExerciseTestingCentreViewModel.h */,
+				90AC53B12A9457070073D90F /* NYExerciseTestingCentreViewModel.m */,
 			);
 			path = itemViewModel;
 			sourceTree = "<group>";
@@ -7953,6 +7963,9 @@
 				D0F283B8292E0D6D00D89E2B /* RQExerciseVideoExplainCell.h */,
 				D0F283B9292E0D6D00D89E2B /* RQExerciseVideoExplainCell.m */,
 				D0F283BA292E0D6D00D89E2B /* RQExerciseVideoExplainCell.xib */,
+				90AC53A82A935EF90073D90F /* NYTestingCentreCell.h */,
+				90AC53A92A935EF90073D90F /* NYTestingCentreCell.m */,
+				90AC53AA2A935EF90073D90F /* NYTestingCentreCell.xib */,
 			);
 			path = ExercisePage;
 			sourceTree = "<group>";
@@ -10311,6 +10324,7 @@
 				D0295C47243F0B8B00B46AB1 /* 1-4-31.jpg in Resources */,
 				D0295BD5243F0B8B00B46AB1 /* 1-4-21.jpg in Resources */,
 				D0295BB8243F0B8B00B46AB1 /* 1-4-47.jpg in Resources */,
+				90AC53AC2A935EF90073D90F /* NYTestingCentreCell.xib in Resources */,
 				D0295C11243F0B8B00B46AB1 /* 1-11-13.jpg in Resources */,
 				D0295B89243F0B8A00B46AB1 /* 6-16-19.jpg in Resources */,
 				D0295B79243F0B8A00B46AB1 /* 3-13-4.jpg in Resources */,
@@ -11175,6 +11189,7 @@
 				D084D86827CDF9D600E521F0 /* RQVipContentCell.m in Sources */,
 				D02010BB29373AE8001B9F4D /* SLAlertView.m in Sources */,
 				D02010CA29373AE8001B9F4D /* SLTimer.m in Sources */,
+				90AC53B22A9457070073D90F /* NYExerciseTestingCentreViewModel.m in Sources */,
 				D074575A29272C680050BE10 /* QMVideoTableCell.m in Sources */,
 				D0D011F6284F1C7D00CE06E1 /* RQPayViewController.m in Sources */,
 				D0D5BF172976A0C6004DC669 /* RQVipTrainPriceCell.m in Sources */,
@@ -11458,6 +11473,7 @@
 				90BA2E872A3177DE0029A54A /* NYGetjobTimeVC.m in Sources */,
 				18886FEC1C3B700000E61BE2 /* symbolCollectionCell.m in Sources */,
 				D04DF6C727006C57006E3633 /* RQCommonQRCodeItemViewModel.m in Sources */,
+				90AC53AB2A935EF90073D90F /* NYTestingCentreCell.m in Sources */,
 				D0F9E82D2824F6E60073A7D1 /* RQChooseCarTypeItemViewModel.m in Sources */,
 				D0D1F670283F84DF0086C6AE /* RQExerciseAnswerItemViewModel.m in Sources */,
 				D0B840AE2850672B001DB115 /* RQProfileSubjectThreeVipCell.m in Sources */,
@@ -11710,7 +11726,7 @@
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				"CODE_SIGN_RESOURCE_RULES_PATH[sdk=*]" = "";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2032023081502;
+				CURRENT_PROJECT_VERSION = 2042023082002;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				ENABLE_BITCODE = NO;
@@ -11747,7 +11763,7 @@
 					"$(PROJECT_DIR)/jiaPei/Vendor/BaiDuFaceSDK/BDFaceSDK/lib",
 					"$(PROJECT_DIR)/jiaPei/Vendor/QiNiu_IMSDK/Vendors/Voice",
 				);
-				MARKETING_VERSION = 2.0.3;
+				MARKETING_VERSION = 2.0.4;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_CFLAGS = (
 					"$(inherited)",
@@ -11792,7 +11808,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2032023081502;
+				CURRENT_PROJECT_VERSION = 2042023082002;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEVELOPMENT_TEAM = K7T6CU5SW5;
 				ENABLE_BITCODE = NO;
@@ -11829,7 +11845,7 @@
 					"$(PROJECT_DIR)/jiaPei/Vendor/BaiDuFaceSDK/BDFaceSDK/lib",
 					"$(PROJECT_DIR)/jiaPei/Vendor/QiNiu_IMSDK/Vendors/Voice",
 				);
-				MARKETING_VERSION = 2.0.3;
+				MARKETING_VERSION = 2.0.4;
 				ONLY_ACTIVE_ARCH = NO;
 				OTHER_CFLAGS = (
 					"$(inherited)",

BIN
jiaPei.xcworkspace/xcuserdata/mimasigeling.xcuserdatad/UserInterfaceState.xcuserstate


+ 1 - 1
jiaPei/AppDelegate.m

@@ -34,7 +34,7 @@
     [self configureSDKs];
     /// 初始化UI之前配置
     [self rq_configureApplication:application initialParamsBeforeInitUI:launchOptions];
-    
+    RQ_USER_MANAGER.tryLookCount = 4;
     // Config Service
     self.services = [[RQViewModelServicesImpl alloc] init];
     // Config Nav Stack

+ 23 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "椭圆blue.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "椭圆blue@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "椭圆blue@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/椭圆blue.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/椭圆blue@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/椭圆blue.imageset/椭圆blue@3x.png


+ 23 - 0
jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/Contents.json

@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "背景遮罩.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "背景遮罩@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "背景遮罩@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/背景遮罩.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/背景遮罩@2x.png


BIN
jiaPei/Images.xcassets/Modules/HomePageModule/背景遮罩.imageset/背景遮罩@3x.png


+ 7 - 0
jiaPei/Modules/OtherModules/ExerciseModule/Controller/RQTestQuestionsViewController.m

@@ -69,6 +69,13 @@
     RQCommonGroupViewModel *groupViewModel = self.viewModel.dataSource[section];
     if ([self.viewModel.dataSource[section] isKindOfClass:[RQExciseExplainHeaderGroupViewModel class]]) {
         headerView = [RQExerciseExplainHeaderView headerViewWithTableView:tableView];
+    }else if ([self.viewModel.dataSource[section] isKindOfClass:[NYExerciseTestingCentreGroupViewModel class]]) {
+        RQExerciseExplainHeaderView *myheaderView = [RQExerciseExplainHeaderView headerViewWithTableView:tableView];
+        if(groupViewModel.itemViewModels.count){
+            RQCommonItemViewModel *itemViewModel = groupViewModel.itemViewModels[0];
+            myheaderView.myTitleLabel.text = ((RQExerciseAnswerItemViewModel*)itemViewModel).ydtJSModel.fir_tilte;
+        }
+        headerView = myheaderView;
     }
     [headerView bindViewModel:groupViewModel];
     return headerView;

+ 1 - 0
jiaPei/Modules/OtherModules/ExerciseModule/RQExerciseModule.h

@@ -142,6 +142,7 @@ typedef NS_ENUM(NSUInteger, RQExerciseAlertType) {
 #import "RQExerciseSubViewModel.h"
 #import "RQTestQuestionsViewModel.h"
 
+#import "NYExerciseTestingCentreViewModel.h"
 #import "RQExciseExplainHeaderGroupViewModel.h"
 #import "RQExerciseQuestionItemViewModel.h"
 #import "RQExerciseOptionItemViewModel.h"

+ 32 - 0
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.h

@@ -0,0 +1,32 @@
+//
+//  NYTestingCentreCell.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/8/21.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "RQCommonCell.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYTestingCentreCell : RQCommonCell
+
+@property (weak, nonatomic) IBOutlet UILabel *title_label;
+
+@property (weak, nonatomic) IBOutlet UILabel *word_label_01;
+
+@property (weak, nonatomic) IBOutlet UILabel *word_label_02;
+
+@property (weak, nonatomic) IBOutlet UILabel *word_label_03;
+
+//view bottom
+@property (weak, nonatomic) IBOutlet UIView *bottom_view;
+@property (weak, nonatomic) IBOutlet UIImageView *bottom_imageview;
+//解题button
+@property (weak, nonatomic) IBOutlet QMUIButton *lock_jq_button;
+
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 97 - 0
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.m

@@ -0,0 +1,97 @@
+//
+//  NYTestingCentreCell.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/8/21.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "NYTestingCentreCell.h"
+
+@interface NYTestingCentreCell ()
+@property (nonatomic, readwrite, strong) NYExerciseTestingCentreItemViewModel *viewModel;
+@property (weak, nonatomic) IBOutlet UIImageView *videoCoverImageView;
+@property (weak, nonatomic) IBOutlet UIView *videoView;
+
+@end
+
+@implementation NYTestingCentreCell
+#pragma mark - PublicMethods
++ (instancetype)cellWithTableView:(UITableView *)tableView {
+    static NSString *ID = @"NYTestingCentreCell-ID";
+    NYTestingCentreCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
+    if (!cell) {
+        cell = [self rq_viewFromXib];
+        [cell setupUI];
+        cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    }
+    return cell;
+}
+
+- (void)setupUI{
+    self.bottom_imageview.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+        graColor.fromColor = [UIColor colorWithHexString:@"#F2F3F5" alpha:0.4];
+        graColor.toColor = [UIColor colorWithHexString:@"#F2F3F5" alpha:1.f];
+        graColor.type = QQGradualChangeTypeUpToDown;
+    } size:CGSizeMake(self.bottom_view.width,self.bottom_view.height)cornerRadius:QQRadiusZero];
+}
+
+- (void)bindViewModel:(NYExerciseTestingCentreItemViewModel *)viewModel {
+    _viewModel = viewModel;
+    
+    @weakify(self)
+    
+    RAC(self.title_label, text) = [[RACObserve(viewModel.ydtJSModel, sec_title) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread];
+    if(RQStringIsNotEmpty(viewModel.ydtJSModel.word)){
+        NSArray *words = [viewModel.ydtJSModel.word componentsSeparatedByString:@";"];
+        self.word_label_01.text = words[0];
+        self.word_label_02.text = words[1];
+        self.word_label_03.text = words[2];
+//        RAC(self.word_label_01, text) = [[RACObserve(words, words[0]) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread];
+    }
+    
+    [[[[RACObserve(viewModel, ydtJSModel) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread] distinctUntilChanged] subscribeNext:^(RQYDTJSModel *ydtJSModel) {
+        @strongify(self)
+        if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne) {
+            if (RQ_VIP_Module.isSubject1Vip) {
+                self.bottom_view.hidden = YES;
+            } else {
+                self.bottom_view.hidden = NO;
+            }
+        } else if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour) {
+            if (RQ_VIP_Module.isSubject4Vip) {
+                self.bottom_view.hidden = YES;
+            } else {
+                self.bottom_view.hidden = NO;
+            }
+        } else {
+            self.bottom_view.hidden = YES;
+        }
+//        self.skillLabel.hidden = RQObjectIsNil(ydtJSModel);
+    }];
+    
+}
+
+- (IBAction)showSkillAction:(id)sender {
+    [RQ_VIP_Module gotoBuyVipWithVipPageType:RQVIPPageType_Full];
+}
+
+#pragma mark - SystemMethods
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.lock_jq_button.imagePosition = QMUIButtonImagePositionRight;
+    self.lock_jq_button.spacingBetweenImageAndTitle = 8;
+    [self.lock_jq_button setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+        graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FF7E4D"];
+        graColor.toColor = [UIColor qmui_colorWithHexString:@"#FF4D53"];
+        graColor.type = QQGradualChangeTypeLeftToRight;
+    } size:CGSizeMake(RQ_FIT_HORIZONTAL(128.f), RQ_FIT_HORIZONTAL(34.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(34.f) / 2.f)] forState:UIControlStateNormal];
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+}
+
+
+@end

+ 193 - 0
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/NYTestingCentreCell.xib

@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="NYTestingCentreCell">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="178"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
+                <rect key="frame" x="0.0" y="0.0" width="320" height="178"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VIa-eb-fK7">
+                        <rect key="frame" x="15" y="15" width="290" height="148"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="扣分1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LFb-Tj-Qzf">
+                                <rect key="frame" x="10" y="15" width="270" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="4Af-8Z-1pY"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
+                                <color key="textColor" red="0.039215686274509803" green="0.10196078431372549" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Pik-QW-ItJ">
+                                <rect key="frame" x="11" y="45" width="24" height="24"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="24" id="al3-Cm-OHB"/>
+                                    <constraint firstAttribute="height" constant="24" id="iJ9-Bd-o9H"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="01" backgroundImage="椭圆blue">
+                                    <color key="titleColor" red="0.28627450980392155" green="0.55686274509803924" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
+                                </state>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Uxr-Q8-nTX">
+                                <rect key="frame" x="43" y="46" width="237" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="M0h-Tw-2c5"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.36078431372549019" green="0.37647058823529411" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cvb-b4-A41">
+                                <rect key="frame" x="11" y="81" width="24" height="24"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="24" id="I5X-sQ-nRa"/>
+                                    <constraint firstAttribute="width" constant="24" id="Ppn-AY-TTk"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="02" backgroundImage="椭圆blue">
+                                    <color key="titleColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                                </state>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hD0-73-99k">
+                                <rect key="frame" x="43" y="83" width="237" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="m2l-1t-ZJc"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.36078431370000003" green="0.37647058820000001" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f53-eW-FbL">
+                                <rect key="frame" x="11" y="117" width="24" height="24"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="24" id="0Pa-XD-7g4"/>
+                                    <constraint firstAttribute="width" constant="24" id="czu-OY-tqg"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="03" backgroundImage="椭圆blue">
+                                    <color key="titleColor" red="0.28627450980000002" green="0.5568627451" blue="0.96078431369999995" alpha="1" colorSpace="calibratedRGB"/>
+                                </state>
+                            </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ld1-Gf-U24">
+                                <rect key="frame" x="43" y="119" width="237" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="aD3-8R-Trd"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                <color key="textColor" red="0.36078431370000003" green="0.37647058820000001" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ftL-xt-Acx" userLabel="View-bottom">
+                                <rect key="frame" x="0.0" y="43" width="290" height="105"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="gos-tW-Owe">
+                                        <rect key="frame" x="0.0" y="0.0" width="290" height="105"/>
+                                    </imageView>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w0S-4R-MZ5">
+                                        <rect key="frame" x="0.0" y="59" width="290" height="46"/>
+                                        <color key="backgroundColor" red="0.94901960784313721" green="0.95294117647058818" blue="0.96078431372549022" alpha="0.84999999999999998" colorSpace="calibratedRGB"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="46" id="Pjt-zl-uBh"/>
+                                        </constraints>
+                                    </view>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lnr-Za-v8C" customClass="QMUIButton">
+                                        <rect key="frame" x="81" y="59" width="128" height="34"/>
+                                        <color key="backgroundColor" red="1" green="0.49411764705882355" blue="0.30196078431372547" alpha="1" colorSpace="calibratedRGB"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="128" id="ZF4-fY-3Oz"/>
+                                            <constraint firstAttribute="height" constant="34" id="zwX-Jt-oKC"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" title="查看完整技巧" image="查看技巧箭头"/>
+                                        <userDefinedRuntimeAttributes>
+                                            <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                                <real key="value" value="17"/>
+                                            </userDefinedRuntimeAttribute>
+                                        </userDefinedRuntimeAttributes>
+                                        <connections>
+                                            <action selector="showSkillAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="HiY-zH-WgM"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstAttribute="bottom" secondItem="lnr-Za-v8C" secondAttribute="bottom" constant="12" id="2vd-Bi-pdA"/>
+                                    <constraint firstItem="w0S-4R-MZ5" firstAttribute="leading" secondItem="ftL-xt-Acx" secondAttribute="leading" id="7HG-yS-zYg"/>
+                                    <constraint firstAttribute="bottom" secondItem="w0S-4R-MZ5" secondAttribute="bottom" id="9WE-m1-ZXK"/>
+                                    <constraint firstItem="lnr-Za-v8C" firstAttribute="centerX" secondItem="ftL-xt-Acx" secondAttribute="centerX" id="He4-ae-LGm"/>
+                                    <constraint firstAttribute="trailing" secondItem="w0S-4R-MZ5" secondAttribute="trailing" id="Q9b-v1-Qkm"/>
+                                    <constraint firstAttribute="trailing" secondItem="gos-tW-Owe" secondAttribute="trailing" id="QnS-rf-HoA"/>
+                                    <constraint firstItem="gos-tW-Owe" firstAttribute="top" secondItem="ftL-xt-Acx" secondAttribute="top" id="UyL-LW-Rhm"/>
+                                    <constraint firstAttribute="bottom" secondItem="gos-tW-Owe" secondAttribute="bottom" id="gIw-Nr-d9p"/>
+                                    <constraint firstItem="gos-tW-Owe" firstAttribute="leading" secondItem="ftL-xt-Acx" secondAttribute="leading" id="pkj-YI-mOh"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" red="0.94901960784313721" green="0.95294117647058818" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
+                        <constraints>
+                            <constraint firstItem="LFb-Tj-Qzf" firstAttribute="top" secondItem="VIa-eb-fK7" secondAttribute="top" constant="15" id="2QG-Rk-jXq"/>
+                            <constraint firstItem="hD0-73-99k" firstAttribute="top" secondItem="Uxr-Q8-nTX" secondAttribute="bottom" constant="17" id="30B-NS-Y4o"/>
+                            <constraint firstItem="Pik-QW-ItJ" firstAttribute="leading" secondItem="VIa-eb-fK7" secondAttribute="leading" constant="11" id="3e7-eg-e1A"/>
+                            <constraint firstItem="cvb-b4-A41" firstAttribute="top" secondItem="Pik-QW-ItJ" secondAttribute="bottom" constant="12" id="5TW-gI-Kac"/>
+                            <constraint firstAttribute="bottom" secondItem="ftL-xt-Acx" secondAttribute="bottom" id="6cB-Kz-NF7"/>
+                            <constraint firstItem="f53-eW-FbL" firstAttribute="leading" secondItem="VIa-eb-fK7" secondAttribute="leading" constant="11" id="CIu-aH-wPv"/>
+                            <constraint firstItem="f53-eW-FbL" firstAttribute="top" secondItem="cvb-b4-A41" secondAttribute="bottom" constant="12" id="EGa-Kx-h4r"/>
+                            <constraint firstAttribute="trailing" secondItem="Uxr-Q8-nTX" secondAttribute="trailing" constant="10" id="Gbe-ZZ-C1y"/>
+                            <constraint firstItem="Ld1-Gf-U24" firstAttribute="top" secondItem="hD0-73-99k" secondAttribute="bottom" constant="16" id="Kp1-Ua-Ksr"/>
+                            <constraint firstItem="Pik-QW-ItJ" firstAttribute="top" secondItem="LFb-Tj-Qzf" secondAttribute="bottom" constant="10" id="URz-69-lnq"/>
+                            <constraint firstItem="ftL-xt-Acx" firstAttribute="leading" secondItem="VIa-eb-fK7" secondAttribute="leading" id="Vei-sh-Ehk"/>
+                            <constraint firstAttribute="trailing" secondItem="ftL-xt-Acx" secondAttribute="trailing" id="WhV-bO-Wu3"/>
+                            <constraint firstItem="cvb-b4-A41" firstAttribute="leading" secondItem="VIa-eb-fK7" secondAttribute="leading" constant="11" id="X4D-y2-rFv"/>
+                            <constraint firstAttribute="trailing" secondItem="Ld1-Gf-U24" secondAttribute="trailing" constant="10" id="ZrP-Sy-0qC"/>
+                            <constraint firstItem="Uxr-Q8-nTX" firstAttribute="leading" secondItem="Pik-QW-ItJ" secondAttribute="trailing" constant="8" symbolic="YES" id="g4a-XJ-su3"/>
+                            <constraint firstItem="hD0-73-99k" firstAttribute="leading" secondItem="cvb-b4-A41" secondAttribute="trailing" constant="8" symbolic="YES" id="jvD-QA-Rts"/>
+                            <constraint firstAttribute="trailing" secondItem="hD0-73-99k" secondAttribute="trailing" constant="10" id="jxH-E8-Dvt"/>
+                            <constraint firstItem="Ld1-Gf-U24" firstAttribute="leading" secondItem="f53-eW-FbL" secondAttribute="trailing" constant="8" symbolic="YES" id="lrx-6J-zT3"/>
+                            <constraint firstItem="Uxr-Q8-nTX" firstAttribute="top" secondItem="LFb-Tj-Qzf" secondAttribute="bottom" constant="11" id="tb0-qh-MTh"/>
+                            <constraint firstItem="LFb-Tj-Qzf" firstAttribute="leading" secondItem="VIa-eb-fK7" secondAttribute="leading" constant="10" id="the-ZE-db9"/>
+                            <constraint firstAttribute="trailing" secondItem="LFb-Tj-Qzf" secondAttribute="trailing" constant="10" id="toC-VC-cGG"/>
+                            <constraint firstItem="ftL-xt-Acx" firstAttribute="top" secondItem="LFb-Tj-Qzf" secondAttribute="bottom" constant="8" symbolic="YES" id="yln-Mr-apb"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="VIa-eb-fK7" secondAttribute="trailing" constant="15" id="1jU-FJ-gAL"/>
+                    <constraint firstItem="VIa-eb-fK7" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="15" id="8GB-Lg-coS"/>
+                    <constraint firstAttribute="bottom" secondItem="VIa-eb-fK7" secondAttribute="bottom" constant="15" id="BPf-Sk-pSF"/>
+                    <constraint firstItem="VIa-eb-fK7" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="15" id="FV2-A1-ooe"/>
+                </constraints>
+            </tableViewCellContentView>
+            <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <connections>
+                <outlet property="bottom_imageview" destination="gos-tW-Owe" id="Cfe-pc-gbI"/>
+                <outlet property="bottom_view" destination="ftL-xt-Acx" id="CWf-ha-Cee"/>
+                <outlet property="lock_jq_button" destination="lnr-Za-v8C" id="eQr-xa-cda"/>
+                <outlet property="title_label" destination="LFb-Tj-Qzf" id="g4X-R8-4B2"/>
+                <outlet property="word_label_01" destination="Uxr-Q8-nTX" id="jvP-AM-NYw"/>
+                <outlet property="word_label_02" destination="hD0-73-99k" id="xtO-VM-4m5"/>
+                <outlet property="word_label_03" destination="Ld1-Gf-U24" id="NIh-7W-ceu"/>
+            </connections>
+            <point key="canvasLocation" x="22.900763358778626" y="-12.67605633802817"/>
+        </tableViewCell>
+    </objects>
+    <resources>
+        <image name="查看技巧箭头" width="12.666666984558105" height="14"/>
+        <image name="椭圆blue" width="24" height="24"/>
+    </resources>
+</document>

+ 54 - 7
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/RQExerciseAnswerCell.m

@@ -13,6 +13,13 @@
 @property (weak, nonatomic) IBOutlet QMUIButton *lookSkillBtn;
 @property (weak, nonatomic) IBOutlet YYLabel *skillLabel;
 @property (weak, nonatomic) IBOutlet UIImageView *coverImageView;
+@property (weak, nonatomic) IBOutlet UIView *tryseeView;
+@property (weak, nonatomic) IBOutlet UILabel *trycount_label;
+@property (weak, nonatomic) IBOutlet UILabel *jqmd_label;
+@property (weak, nonatomic) IBOutlet QMUIButton *trylookSkillBtn;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *skill_bottom_layout;
+
 
 @end
 
@@ -33,39 +40,66 @@
     @weakify(self)
     
     RAC(self.answerLabel, text) = [[RACObserve(viewModel, answerString) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread];
+
     
     [[[[RACObserve(viewModel, skillHeight) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread] distinctUntilChanged] subscribeNext:^(id  _Nullable x) {
         @strongify(self)
-        self.coverImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
-            graColor.fromColor = [UIColor colorWithHexString:@"#F2F3F5" alpha:0.2];
-            graColor.toColor = [UIColor colorWithHexString:@"#F2F3F5" alpha:1.f];
-            graColor.type = QQGradualChangeTypeLeftToRight;
-        } size:CGSizeMake(RQ_SCREEN_WIDTH - 32.f - 16.f - RQ_FIT_HORIZONTAL(128.f) + 30.f, viewModel.skillHeight) cornerRadius:QQRadiusZero];
+//        self.coverImageView.image = [UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+//            graColor.fromColor = [UIColor colorWithHexString:@"#F2F3F5" alpha:0.2];
+//            graColor.toColor = [UIColor colorWithHexString:@"#F2F3F5" alpha:1.f];
+//            graColor.type = QQGradualChangeTypeLeftToRight;
+//        } size:CGSizeMake(RQ_SCREEN_WIDTH - 32.f - 16.f - RQ_FIT_HORIZONTAL(128.f) + 30.f, viewModel.skillHeight) cornerRadius:QQRadiusZero];
+        self.coverImageView.image = [UIImage imageNamed:@"背景遮罩"];
     }];
     
     RAC(self.skillLabel, attributedText) = [[RACObserve(viewModel, skillString) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread];
-    
+    int count = 0;
+    if(RQ_USER_MANAGER.tryLookCount>0){
+        count = RQ_USER_MANAGER.tryLookCount-1;
+    }
+    self.trycount_label.text = [NSString stringWithFormat:@"%d",count];//试看次数
+
     [[[[RACObserve(viewModel, ydtJSModel) takeUntil:self.rac_prepareForReuseSignal] deliverOnMainThread] distinctUntilChanged] subscribeNext:^(RQYDTJSModel *ydtJSModel) {
         @strongify(self)
         if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne) {
             if (RQ_VIP_Module.isSubject1Vip) {
                 self.coverImageView.hidden = YES;
                 self.lookSkillBtn.hidden = YES;
+                self.jqmd_label.hidden = YES;
+                self.tryseeView.hidden = YES;
+            } else if(RQ_USER_MANAGER.tryLookCount>0){//是否试看
+                self.coverImageView.hidden = YES;
+                self.lookSkillBtn.hidden = YES;
+                self.jqmd_label.hidden = YES;
+                self.tryseeView.hidden = NO;
             } else {
                 self.coverImageView.hidden = RQObjectIsNil(ydtJSModel);
                 self.lookSkillBtn.hidden = RQObjectIsNil(ydtJSModel);
+                self.jqmd_label.hidden =  RQObjectIsNil(ydtJSModel);
+                self.tryseeView.hidden = YES;
             }
         } else if (RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour) {
             if (RQ_VIP_Module.isSubject4Vip) {
                 self.coverImageView.hidden = YES;
                 self.lookSkillBtn.hidden = YES;
+                self.jqmd_label.hidden =  YES;
+                self.jqmd_label.hidden =  RQObjectIsNil(ydtJSModel);
+            } else if(RQ_USER_MANAGER.tryLookCount>0){//是否试看
+                self.coverImageView.hidden = YES;
+                self.lookSkillBtn.hidden = YES;
+                self.jqmd_label.hidden =  YES;
+                self.tryseeView.hidden = NO;
             } else {
                 self.coverImageView.hidden = RQObjectIsNil(ydtJSModel);
                 self.lookSkillBtn.hidden = RQObjectIsNil(ydtJSModel);
+                self.jqmd_label.hidden =  RQObjectIsNil(ydtJSModel);
+                self.tryseeView.hidden = YES;
             }
         } else {
             self.coverImageView.hidden = YES;
             self.lookSkillBtn.hidden = YES;
+            self.jqmd_label.hidden =  YES;
+            self.tryseeView.hidden = YES;
         }
         self.skillLabel.hidden = RQObjectIsNil(ydtJSModel);
     }];
@@ -91,9 +125,22 @@
             graColor.type = QQGradualChangeTypeLeftToRight;
         } size:CGSizeMake(RQ_FIT_HORIZONTAL(128.f), RQ_FIT_HORIZONTAL(34.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(34.f) / 2.f)] forState:UIControlStateNormal];
         
+        self.trylookSkillBtn.imagePosition = QMUIButtonImagePositionRight;
+        [self.trylookSkillBtn setBackgroundImage:[UIImage imageWithGradualChangingColor:^(QQGradualChangingColor *graColor) {
+            graColor.fromColor = [UIColor qmui_colorWithHexString:@"#FF7E4D"];
+            graColor.toColor = [UIColor qmui_colorWithHexString:@"#FF4D53"];
+            graColor.type = QQGradualChangeTypeLeftToRight;
+        } size:CGSizeMake(RQ_FIT_HORIZONTAL(128.f), RQ_FIT_HORIZONTAL(34.f)) cornerRadius:QQRadiusMakeSame(RQ_FIT_HORIZONTAL(34.f) / 2.f)] forState:UIControlStateNormal];
+        
+        
         NSInteger line = RQ_COMMON_MANAGER.APP_SWITCH? 0 : ((RQ_VIP_Module.isSubject1Vip && RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne)? 0 : ((RQ_VIP_Module.isSubject4Vip && RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour)? 0 : 1));
+        self.skill_bottom_layout.constant = 16.f;
+        if(RQ_USER_MANAGER.tryLookCount>0 && line == 1){//是否试看
+            line = 0;
+            self.skill_bottom_layout.constant = 56.f;
+        }
         self.skillLabel.numberOfLines = line;
-        
+        [self layoutIfNeeded];
     });
     
 }

+ 99 - 8
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/RQExerciseAnswerCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -39,8 +39,8 @@
                                     <userDefinedRuntimeAttribute type="string" keyPath="fontName_" value="PingFang SC"/>
                                 </userDefinedRuntimeAttributes>
                             </view>
-                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalCompressionResistancePriority="749" verticalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="t3m-Ih-JxA">
-                                <rect key="frame" x="8" y="45" width="193" height="28"/>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalCompressionResistancePriority="749" verticalCompressionResistancePriority="749" translatesAutoresizingMaskIntoConstraints="NO" id="t3m-Ih-JxA">
+                                <rect key="frame" x="120" y="0.0" width="168" height="89"/>
                             </imageView>
                             <button opaque="NO" contentMode="scaleToFill" horizontalCompressionResistancePriority="1000" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eDb-FW-jYl" customClass="QMUIButton">
                                 <rect key="frame" x="171" y="44.5" width="109" height="29"/>
@@ -59,22 +59,108 @@
                                     <action selector="showSkillAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Ut4-xY-eyn"/>
                                 </connections>
                             </button>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="用技巧,秒选答案" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y1K-5C-QC7">
+                                <rect key="frame" x="180.5" y="28" width="90" height="16"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="90" id="nmP-cf-Nzm"/>
+                                    <constraint firstAttribute="height" constant="16" id="s6f-Gw-cHQ"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="11"/>
+                                <color key="textColor" red="1" green="0.30196078431372547" blue="0.32549019607843138" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uyu-dD-fYM" userLabel="View-试看">
+                                <rect key="frame" x="8" y="43" width="272" height="34"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可试看3次,剩余 " textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CJ9-vk-nWR">
+                                        <rect key="frame" x="8" y="0.0" width="126" height="34"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="126" id="Pfr-oJ-pTQ"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                        <color key="textColor" red="0.36078431372549019" green="0.37647058823529411" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="r2U-8G-Pnv" userLabel="3n">
+                                        <rect key="frame" x="134" y="0.0" width="18" height="34"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="34" id="Nke-NQ-BlH"/>
+                                            <constraint firstAttribute="width" constant="18" id="vaE-7b-w8c"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                        <color key="textColor" red="1" green="0.30196078431372547" blue="0.32549019607843138" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="次" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y59-fp-ly8" userLabel="次">
+                                        <rect key="frame" x="152" y="0.0" width="20" height="34"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="20" id="HAS-Fo-tWg"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                        <color key="textColor" red="0.36078431370000003" green="0.37647058820000001" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <button opaque="NO" contentMode="scaleToFill" horizontalCompressionResistancePriority="1000" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8If-RM-eG0" customClass="QMUIButton">
+                                        <rect key="frame" x="144" y="2.5" width="128" height="29"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="29" id="Ct9-bI-lKd"/>
+                                            <constraint firstAttribute="width" constant="128" id="eIJ-pG-ecS"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" title="查看完整技巧" image="查看技巧箭头"/>
+                                        <userDefinedRuntimeAttributes>
+                                            <userDefinedRuntimeAttribute type="number" keyPath="spacingBetweenImageAndTitle">
+                                                <real key="value" value="6"/>
+                                            </userDefinedRuntimeAttribute>
+                                        </userDefinedRuntimeAttributes>
+                                        <connections>
+                                            <action selector="showSkillAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="aAw-hK-BUH"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" red="1" green="0.94509803921568625" blue="0.8784313725490196" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="trailing" secondItem="8If-RM-eG0" secondAttribute="trailing" id="3A4-Wl-eoh"/>
+                                    <constraint firstItem="r2U-8G-Pnv" firstAttribute="leading" secondItem="CJ9-vk-nWR" secondAttribute="trailing" id="3qa-p6-dnj"/>
+                                    <constraint firstAttribute="bottom" secondItem="Y59-fp-ly8" secondAttribute="bottom" id="9eY-hM-wtW"/>
+                                    <constraint firstItem="r2U-8G-Pnv" firstAttribute="top" secondItem="Uyu-dD-fYM" secondAttribute="top" id="Fia-n2-7ji"/>
+                                    <constraint firstAttribute="height" constant="34" id="Fka-ik-24Q"/>
+                                    <constraint firstItem="CJ9-vk-nWR" firstAttribute="top" secondItem="Uyu-dD-fYM" secondAttribute="top" id="Fs3-Ap-Nwz"/>
+                                    <constraint firstAttribute="bottom" secondItem="CJ9-vk-nWR" secondAttribute="bottom" id="eXh-pA-zta"/>
+                                    <constraint firstItem="8If-RM-eG0" firstAttribute="centerY" secondItem="Uyu-dD-fYM" secondAttribute="centerY" id="iM9-HW-doa"/>
+                                    <constraint firstItem="CJ9-vk-nWR" firstAttribute="leading" secondItem="Uyu-dD-fYM" secondAttribute="leading" constant="8" id="tdY-Xb-AWK"/>
+                                    <constraint firstAttribute="bottom" secondItem="r2U-8G-Pnv" secondAttribute="bottom" id="ucH-ny-57u"/>
+                                    <constraint firstItem="Y59-fp-ly8" firstAttribute="top" secondItem="Uyu-dD-fYM" secondAttribute="top" id="wqi-RF-Pta"/>
+                                    <constraint firstItem="Y59-fp-ly8" firstAttribute="leading" secondItem="r2U-8G-Pnv" secondAttribute="trailing" id="yh8-Ls-hMN"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
+                                        <integer key="value" value="17"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </view>
                         </subviews>
                         <color key="backgroundColor" red="0.94901960784313721" green="0.95294117647058818" blue="0.96078431372549022" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
-                            <constraint firstItem="t3m-Ih-JxA" firstAttribute="bottom" secondItem="qLO-kQ-QsU" secondAttribute="bottom" id="5HS-lp-u6V"/>
+                            <constraint firstAttribute="bottom" secondItem="Uyu-dD-fYM" secondAttribute="bottom" constant="12" id="AhI-cb-WEM"/>
                             <constraint firstAttribute="trailing" secondItem="5yE-jH-I16" secondAttribute="trailing" constant="8" id="B3E-s0-Xry"/>
                             <constraint firstAttribute="bottom" secondItem="qLO-kQ-QsU" secondAttribute="bottom" constant="16" id="BQQ-FK-U7A"/>
+                            <constraint firstItem="t3m-Ih-JxA" firstAttribute="leading" secondItem="4du-vB-hk1" secondAttribute="leading" constant="120" id="D3B-zw-cjK"/>
+                            <constraint firstAttribute="trailing" secondItem="t3m-Ih-JxA" secondAttribute="trailing" id="FaK-cd-Htc"/>
                             <constraint firstItem="5yE-jH-I16" firstAttribute="leading" secondItem="4du-vB-hk1" secondAttribute="leading" constant="8" id="GRS-22-BZp"/>
                             <constraint firstItem="5yE-jH-I16" firstAttribute="top" secondItem="4du-vB-hk1" secondAttribute="top" constant="16" id="LJf-25-jp3"/>
-                            <constraint firstItem="t3m-Ih-JxA" firstAttribute="leading" secondItem="qLO-kQ-QsU" secondAttribute="leading" id="Rc9-1V-6eG"/>
+                            <constraint firstAttribute="trailing" secondItem="Uyu-dD-fYM" secondAttribute="trailing" constant="8" id="R9x-qW-cef"/>
                             <constraint firstItem="qLO-kQ-QsU" firstAttribute="leading" secondItem="5yE-jH-I16" secondAttribute="leading" id="SP8-Dt-LI6"/>
+                            <constraint firstAttribute="bottom" secondItem="t3m-Ih-JxA" secondAttribute="bottom" id="Xhu-qL-LX7"/>
                             <constraint firstItem="qLO-kQ-QsU" firstAttribute="trailing" secondItem="5yE-jH-I16" secondAttribute="trailing" id="XkW-3e-Esq"/>
                             <constraint firstItem="eDb-FW-jYl" firstAttribute="trailing" secondItem="qLO-kQ-QsU" secondAttribute="trailing" id="gmd-Ui-Klw"/>
+                            <constraint firstItem="t3m-Ih-JxA" firstAttribute="top" secondItem="4du-vB-hk1" secondAttribute="top" id="k1S-1c-GpW"/>
                             <constraint firstItem="eDb-FW-jYl" firstAttribute="centerY" secondItem="qLO-kQ-QsU" secondAttribute="centerY" id="kWX-sK-Xuw"/>
-                            <constraint firstItem="t3m-Ih-JxA" firstAttribute="top" secondItem="qLO-kQ-QsU" secondAttribute="top" id="prY-26-pbG"/>
-                            <constraint firstItem="eDb-FW-jYl" firstAttribute="leading" secondItem="t3m-Ih-JxA" secondAttribute="trailing" constant="-30" id="swA-hK-HWg"/>
+                            <constraint firstItem="eDb-FW-jYl" firstAttribute="top" secondItem="Y1K-5C-QC7" secondAttribute="bottom" constant="0.5" id="mMq-F0-ScA"/>
+                            <constraint firstItem="Y1K-5C-QC7" firstAttribute="centerX" secondItem="eDb-FW-jYl" secondAttribute="centerX" id="otJ-Uy-m3s"/>
                             <constraint firstItem="qLO-kQ-QsU" firstAttribute="top" secondItem="5yE-jH-I16" secondAttribute="bottom" constant="6" id="tJQ-LX-H3m"/>
+                            <constraint firstItem="Uyu-dD-fYM" firstAttribute="leading" secondItem="4du-vB-hk1" secondAttribute="leading" constant="8" id="x7F-iy-Q1b"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
@@ -96,8 +182,13 @@
             <connections>
                 <outlet property="answerLabel" destination="5yE-jH-I16" id="pR6-Vv-oI6"/>
                 <outlet property="coverImageView" destination="t3m-Ih-JxA" id="NZf-Sg-DHa"/>
+                <outlet property="jqmd_label" destination="Y1K-5C-QC7" id="h4J-r6-jVc"/>
                 <outlet property="lookSkillBtn" destination="eDb-FW-jYl" id="41Z-jH-753"/>
                 <outlet property="skillLabel" destination="qLO-kQ-QsU" id="7ao-2n-uy4"/>
+                <outlet property="skill_bottom_layout" destination="BQQ-FK-U7A" id="i0K-0u-wnr"/>
+                <outlet property="trycount_label" destination="r2U-8G-Pnv" id="Z4p-0b-ICr"/>
+                <outlet property="trylookSkillBtn" destination="8If-RM-eG0" id="XCW-O0-igp"/>
+                <outlet property="tryseeView" destination="Uyu-dD-fYM" id="vg0-CW-XCO"/>
             </connections>
             <point key="canvasLocation" x="123" y="88"/>
         </tableViewCell>

+ 3 - 3
jiaPei/Modules/OtherModules/ExerciseModule/View/ExercisePage/RQExerciseVideoExplainCell.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -99,7 +99,7 @@
                             <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5L4-fb-p1o">
                                 <rect key="frame" x="206.66666666666671" y="166.33333333333334" width="113.33333333333334" height="13.333333333333343"/>
                                 <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可试看5次,当前" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cdK-3i-PvZ">
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可试看3次,当前" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cdK-3i-PvZ">
                                         <rect key="frame" x="0.0" y="0.0" width="85.666666666666671" height="13.333333333333334"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                         <color key="textColor" red="0.56862745100000001" green="0.3294117647" blue="0.058823529409999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

+ 28 - 9
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/RQTestQuestionsViewModel.m

@@ -24,8 +24,10 @@
 @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group2;
 ///    第三组      多选题确定按钮
 @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *group3;
-///    第四组      试题讲解
-@property (nonatomic, readwrite, strong) RQExciseExplainHeaderGroupViewModel *group4;
+///    第四组      考点分析
+@property (nonatomic, readwrite, strong) NYExerciseTestingCentreGroupViewModel *group4;
+///    第五组      试题讲解
+@property (nonatomic, readwrite, strong) RQExciseExplainHeaderGroupViewModel *group5;
 
 
 @end
@@ -75,14 +77,17 @@
     
     /// 试题讲解
     RQExercisExplainItemViewModel *exercisExplainItemViewModel = [[RQExercisExplainItemViewModel alloc] initWithRQExerciseModel:self.exerciseModel];
-   
+    
+    /// 考点总结
+    NYExerciseTestingCentreItemViewModel *exerciseTestingCentreItemViewModel = [[NYExerciseTestingCentreItemViewModel alloc] initWithRQYDTJSModel:ydtJSModel];
     ///
     RAC(self, dataSource) = [[RACSignal combineLatest:@[[RACObserve(self, exerciseModel) distinctUntilChanged], RACObserve(self.exerciseModel, userAnswer), [RACObserve(self.exerciseModel, answerResultsType) distinctUntilChanged],RACObserve(RQ_Exercise_Module, currentExerciseType)] reduce:^id (RQExerciseModel *exerciseModel, NSArray *userAnswer, NSNumber *answerResultsType, NSNumber *currentExerciseType) {
         @strongify(self)
         if (RQ_Exercise_Module.currentExerciseType == RQExerciseType_Recitation) {
             self.group2.itemViewModels = @[exerciseAnswerItemViewModel];
             self.group3.itemViewModels = @[];
-            self.group4.itemViewModels = RQObjectIsNil(exerciseVideoExplainItemViewModel)? @[exercisExplainItemViewModel] : @[exerciseVideoExplainItemViewModel,exercisExplainItemViewModel];
+            self.group4.itemViewModels = @[exerciseTestingCentreItemViewModel];
+            self.group5.itemViewModels = RQObjectIsNil(exerciseVideoExplainItemViewModel)? @[exercisExplainItemViewModel] : @[exerciseVideoExplainItemViewModel,exercisExplainItemViewModel];
         } else {
             BOOL isAnswered = (![userAnswer containsObject:@"预选Option"] && userAnswer.count > 0);
             if (isAnswered) {
@@ -102,11 +107,17 @@
             }
             self.group2.itemViewModels = isAnswered? @[exerciseAnswerItemViewModel] : @[];
             self.group3.itemViewModels = ([userAnswer containsObject:@"预选Option"] && (exerciseModel.ydtQuestionModel.Type == 3))? @[exerciseOptionSureBtnItemViewModel] : @[];
-            self.group4.itemViewModels = isAnswered? ( RQObjectIsNil(exerciseVideoExplainItemViewModel)? @[exercisExplainItemViewModel] : @[exerciseVideoExplainItemViewModel,exercisExplainItemViewModel]) : @[];
-            
+            self.group4.itemViewModels = isAnswered? @[exerciseTestingCentreItemViewModel]: @[];
+            self.group5.itemViewModels = isAnswered? ( RQObjectIsNil(exerciseVideoExplainItemViewModel)? @[exercisExplainItemViewModel] : @[exerciseVideoExplainItemViewModel,exercisExplainItemViewModel]) : @[];
         }
         self.group4.headerHeight = (self.group4.itemViewModels.count > 0)? RQ_FIT_HORIZONTAL(50.f) : CGFLOAT_MIN;
-        return @[self.group0, self.group1, self.group2, self.group3, self.group4];
+        self.group5.headerHeight = (self.group5.itemViewModels.count > 0)? RQ_FIT_HORIZONTAL(50.f) : CGFLOAT_MIN;
+        if (RQStringIsNotEmpty(ydtJSModel.word)){
+            return @[self.group0, self.group1, self.group2, self.group3, self.group4, self.group5];
+        }else {
+            return @[self.group0, self.group1, self.group2, self.group3, self.group5];
+        }
+        
     }] deliverOnMainThread];
 }
      
@@ -153,10 +164,18 @@
     return _group3;
 }
 
-- (RQExciseExplainHeaderGroupViewModel *)group4 {
+- (NYExerciseTestingCentreGroupViewModel *)group4 {
     if (!_group4) {
-        _group4 = [RQExciseExplainHeaderGroupViewModel groupViewModel];
+        _group4 = [NYExerciseTestingCentreGroupViewModel groupViewModel];
     }
     return _group4;
 }
+
+- (RQExciseExplainHeaderGroupViewModel *)group5 {
+    if (!_group5) {
+        _group5 = [RQExciseExplainHeaderGroupViewModel groupViewModel];
+    }
+    return _group5;
+}
+
 @end

+ 25 - 0
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/NYExerciseTestingCentreViewModel.h

@@ -0,0 +1,25 @@
+//
+//  NYExerciseTestingCentreViewModel.h
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/8/22.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "RQCommonGroupViewModel.h"
+#import "RQCommonItemViewModel.h"
+#import "RQYDTJSModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NYExerciseTestingCentreGroupViewModel : RQCommonGroupViewModel
+
+@end
+
+@interface NYExerciseTestingCentreItemViewModel : RQCommonItemViewModel
+@property (nonatomic, readonly, strong) RQYDTJSModel *ydtJSModel;
+- (instancetype)initWithRQYDTJSModel:(RQYDTJSModel *)ydtJSModel;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 45 - 0
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/NYExerciseTestingCentreViewModel.m

@@ -0,0 +1,45 @@
+//
+//  NYExerciseTestingCentreViewModel.m
+//  jiaPei
+//
+//  Created by Ning.ge on 2023/8/22.
+//  Copyright © 2023 JCZ. All rights reserved.
+//
+
+#import "NYExerciseTestingCentreViewModel.h"
+
+@implementation NYExerciseTestingCentreGroupViewModel
+/// init
+- (instancetype)init {
+    if (self = [super init]) {
+        self.headerHeight = RQ_FIT_HORIZONTAL(50.f);
+    }
+    return self;
+}
+
+@end
+
+@interface NYExerciseTestingCentreItemViewModel ()
+@property (nonatomic, readwrite, strong) RQYDTJSModel *ydtJSModel;
+
+
+@end
+
+@implementation NYExerciseTestingCentreItemViewModel
+- (instancetype)initWithRQYDTJSModel:(RQYDTJSModel *)ydtJSModel {
+    if (self = [super init]) {
+        @weakify(self)
+        dispatch_async(dispatch_get_main_queue(), ^{
+            @strongify(self)
+            self.ydtJSModel = ydtJSModel;
+            self.rowHeight = RQ_FIT_HORIZONTAL(173.f) + 16.f;
+        });
+    }
+    return self;
+}
+
+- (NSString *)itemClassName {
+    return @"NYTestingCentreCell";
+}
+
+@end

+ 16 - 2
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/RQExerciseAnswerItemViewModel.m

@@ -7,7 +7,9 @@
 
 #import "RQExerciseAnswerItemViewModel.h"
 
-@interface RQExerciseAnswerItemViewModel ()
+@interface RQExerciseAnswerItemViewModel (){
+    CGFloat _exRowHeight;//记录原始rowHeight
+}
 @property (nonatomic, readwrite, strong) NSString *answerString;
 @property (nonatomic, readwrite, strong) RQYDTJSModel *ydtJSModel;
 @property (nonatomic, readwrite, assign) CGFloat skillHeight;
@@ -64,17 +66,29 @@
                 }
                 self.skillString = text;
                 NSInteger line = RQ_COMMON_MANAGER.APP_SWITCH? 0 : ((RQ_VIP_Module.isSubject1Vip && RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne)? 0 : ((RQ_VIP_Module.isSubject4Vip && RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour)? 0 : 1));
+                if (RQ_USER_MANAGER.tryLookCount>0 && line==1){//试看
+                    line = 0;
+                }
                 CGFloat height = (line == 0)? [self getMessageHeightWithAttributedStr:text andLabel:self.yyLabel] : RQ_FIT_HORIZONTAL(34.f);
                 self.skillHeight = height;
                 space = 6.f;
             }
-            self.rowHeight = [_answerString heightForFont:[UIFont systemFontOfSize:19] width:RQ_SCREEN_WIDTH - (16 * 2) - (8 * 2)] + (8 * 2) + (16 * 2) + space + self.skillHeight;
+            _exRowHeight = [_answerString heightForFont:[UIFont systemFontOfSize:19] width:RQ_SCREEN_WIDTH - (16 * 2) - (8 * 2)] + (8 * 2) + (16 * 2) + space + self.skillHeight;
         });
         
         
     }
     return self;
 }
+//重写 rowHeight get 方法
+- (CGFloat)rowHeight{
+    CGFloat rowH = _exRowHeight;
+    NSInteger line = RQ_COMMON_MANAGER.APP_SWITCH? 0 : ((RQ_VIP_Module.isSubject1Vip && RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectOne)? 0 : ((RQ_VIP_Module.isSubject4Vip && RQ_YDTQuestion_Module.subject == RQHomePageSubjectType_SubjectFour)? 0 : 1));
+    if (RQ_USER_MANAGER.tryLookCount>0 && line==1){//试看
+        rowH = _exRowHeight + 40.f;
+    }
+    return rowH;
+}
 
 //获取字典
 - (NSArray *)getKeyRangeList:(NSString *)originalText readText:(NSString*)readText {

+ 4 - 1
jiaPei/Modules/OtherModules/ExerciseModule/ViewModel/ExercisePage/itemViewModel/RQExerciseOptionItemViewModel.m

@@ -147,9 +147,12 @@
         RAC(self, rowHeight) = [[[RACSignal combineLatest:@[[RACObserve(RQ_Exercise_Module, exerciseFontSize) takeUntil:self.rac_willDeallocSignal],[RACObserve(self, labelHeight) takeUntil:self.rac_willDeallocSignal]] reduce:^(NSNumber *exerciseFontSize, NSNumber *labelHeight) {
             return @(10.f + ((labelHeight.floatValue < RQ_FIT_HORIZONTAL(30.f)? RQ_FIT_HORIZONTAL(30.f) : labelHeight.floatValue)) + 10.f);
         }] deliverOnMainThread] takeUntil:self.rac_willDeallocSignal];
-        
+        //答题-block
         self.operation = (RQ_Exercise_Module.currentExerciseType == RQExerciseType_Recitation)? ^{} : ^{
             @strongify(self)
+            if (RQ_USER_MANAGER.tryLookCount > 0) {//试看次数
+                RQ_USER_MANAGER.tryLookCount = RQ_USER_MANAGER.tryLookCount - 1;
+            }
             if (self.exerciseModel.ydtQuestionModel.Type == 3) {
                 if (![self.exerciseModel.userAnswer containsObject:optString]) {
                     NSMutableArray *userAnswerArr = self.exerciseModel.userAnswer.mutableCopy;

+ 0 - 3
jiaPei/Modules/OtherModules/YDTQuestionModule/Model/RQYDTQuestionModel.m

@@ -45,9 +45,6 @@
     ydtQuestionModel.media_url = [resultSet stringForColumn:@"media_url"];
     ydtQuestionModel.media_content = [resultSet columnIsNull:@"media_content"]? nil : [resultSet dataForColumn:@"media_content"];
     ydtQuestionModel.video_url = RQStringIsNotEmpty(ydtQuestionModel.media_url)? ([ydtQuestionModel.media_url containsString:@".mp4"]? ydtQuestionModel.media_url : @"") : @"";
-    if(ydtQuestionModel.ID==33800){
-        NSLog(@"%zd",ydtQuestionModel.ID)
-    }
 //    if (ydtQuestionModel.Type == 1 && RQStringIsEmpty(ydtQuestionModel.An1) && RQStringIsEmpty(ydtQuestionModel.An2)) {
     if (ydtQuestionModel.Type == 1 ) {//只要是判断题
         ydtQuestionModel.An1 = @"正确";

+ 1 - 0
jiaPei/UserInfo.h

@@ -59,6 +59,7 @@
 @property(nonatomic,copy) NSString *wycIndex;
 
 
+
 /**用户昵称.只是为了迎合界面而已,实际web系统里面没这个字段
  */
 @property(nonatomic,copy) NSString *userNickName;

+ 0 - 2
jiaPei/UserInfo.m

@@ -142,8 +142,6 @@ void SaveObjectForKey(id object, NSString* key);
     SaveObjectForKey(userNickName, infoKeys[4]);
 }
 
-
-
 -(void)setUserSex:(NSString *)userSex{
     _userSex = userSex;
     SaveObjectForKey(userSex, infoKeys[5]);

+ 1 - 1
jiaPei/Utils/Manager/UserManager/RQUserManager.m

@@ -147,7 +147,7 @@ static id rq_userManager = nil;
     NSString *key = [NSString stringWithFormat:@"RQTryLookCountKey-%@",RQ_USER_MANAGER.currentUser._id];
     id object = [RQ_COMMON_MANAGER getObjectWithKey:key];
     if (RQObjectIsNil(object)) {
-        return 5;
+        return 3;
     } else {
         NSInteger tryLookCount = [object integerValue];
         return tryLookCount;