From fe460485972623f9ffcd4d29cb956bfddf9c97e3 Mon Sep 17 00:00:00 2001 From: 无故事王国 <841720330@qq.com> Date: 星期二, 09 九月 2025 11:28:35 +0800 Subject: [PATCH] 代码补交 --- DolphinEnglishLearnStudent/Moudle/Home/Listen/View/RandromAnsterView.swift | 208 ++++++++++++++++ DolphinEnglishLearnStudent/Base.lproj/LaunchScreen.storyboard | 20 DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift | 18 DolphinEnglishLearnStudent/Login/LoginVC.swift | 146 +++++----- DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@2x.png | 0 DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift | 81 +++++- DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.xib | 84 ++--- DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift | 5 DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@3x.png | 0 DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift | 12 DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib | 90 ++---- /dev/null | 0 DolphinEnglishLearnStudent/Models/CommonModel.swift | 8 DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift | 31 ++ DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubV2VC.swift | 47 ++- DolphinEnglishLearnStudent/AppDelegate.swift | 1 DolphinEnglishLearnStudent.xcodeproj/project.pbxproj | 8 DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.swift | 2 DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/Contents.json | 4 19 files changed, 520 insertions(+), 245 deletions(-) diff --git a/DolphinEnglishLearnStudent.xcodeproj/project.pbxproj b/DolphinEnglishLearnStudent.xcodeproj/project.pbxproj index e000f56..883927d 100644 --- a/DolphinEnglishLearnStudent.xcodeproj/project.pbxproj +++ b/DolphinEnglishLearnStudent.xcodeproj/project.pbxproj @@ -109,6 +109,7 @@ 13CDF4512C05757400E8D4FD /* Lesson_4_AnswerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13CDF4502C05757400E8D4FD /* Lesson_4_AnswerView.xib */; }; 13E07DF12BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E07DF02BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift */; }; 13E99EFA2C1FD1A9004F52D4 /* LaunchImageHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E99EF92C1FD1A9004F52D4 /* LaunchImageHelper.swift */; }; + 13EA9E552E66054E00F1427F /* RandromAnsterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EA9E542E66054E00F1427F /* RandromAnsterView.swift */; }; 13EEB8912BFED3F3002996FC /* AwardListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8902BFED3F3002996FC /* AwardListView.swift */; }; 13EEB8932BFED3FA002996FC /* AwardListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13EEB8922BFED3FA002996FC /* AwardListView.xib */; }; 13EEB8972BFF1531002996FC /* AwardListCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13EEB8952BFF1531002996FC /* AwardListCCell.swift */; }; @@ -233,6 +234,7 @@ 13CDF4502C05757400E8D4FD /* Lesson_4_AnswerView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Lesson_4_AnswerView.xib; sourceTree = "<group>"; }; 13E07DF02BFDF1E600B7F5FB /* ExchangeRecordHistoryVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExchangeRecordHistoryVC.swift; sourceTree = "<group>"; }; 13E99EF92C1FD1A9004F52D4 /* LaunchImageHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LaunchImageHelper.swift; sourceTree = "<group>"; }; + 13EA9E542E66054E00F1427F /* RandromAnsterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RandromAnsterView.swift; sourceTree = "<group>"; }; 13EEB8902BFED3F3002996FC /* AwardListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AwardListView.swift; sourceTree = "<group>"; }; 13EEB8922BFED3FA002996FC /* AwardListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AwardListView.xib; sourceTree = "<group>"; }; 13EEB8952BFF1531002996FC /* AwardListCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AwardListCCell.swift; sourceTree = "<group>"; }; @@ -545,6 +547,7 @@ 13A04A062C05C29D00F1F52E /* ChooseLevelView.xib */, 1316A22D2C05CE5900BE6CAA /* GameBeginTipView.swift */, 1316A22F2C05CE6100BE6CAA /* GameBeginTipView.xib */, + 13EA9E542E66054E00F1427F /* RandromAnsterView.swift */, ); path = View; sourceTree = "<group>"; @@ -772,9 +775,13 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-DolphinEnglishLearnStudent/Pods-DolphinEnglishLearnStudent-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -834,6 +841,7 @@ 130278872BFD9F2A00DDCE81 /* AddressManageHandleVC.swift in Sources */, 130278892BFD9F2A00DDCE81 /* AddressManageVC.swift in Sources */, 1302785C2BFD985E00DDCE81 /* CommonInputView.swift in Sources */, + 13EA9E552E66054E00F1427F /* RandromAnsterView.swift in Sources */, 13A04A052C05C29300F1F52E /* ChooseLevelView.swift in Sources */, 1319B0272C0818460052F889 /* HomeListenStory_1_VC.swift in Sources */, 130278792BFD9ED600DDCE81 /* ExchangeResultVC.swift in Sources */, diff --git a/DolphinEnglishLearnStudent/AppDelegate.swift b/DolphinEnglishLearnStudent/AppDelegate.swift index 78aa1c8..e5e1e6d 100644 --- a/DolphinEnglishLearnStudent/AppDelegate.swift +++ b/DolphinEnglishLearnStudent/AppDelegate.swift @@ -15,7 +15,6 @@ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. - sleep(2) return true } diff --git a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/3614f397766a6be30598295885d7008b 1.png b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/3614f397766a6be30598295885d7008b 1.png deleted file mode 100644 index c318f13..0000000 --- a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/3614f397766a6be30598295885d7008b 1.png +++ /dev/null Binary files differ diff --git a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/3614f397766a6be30598295885d7008b.png b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/3614f397766a6be30598295885d7008b.png deleted file mode 100644 index c318f13..0000000 --- a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/3614f397766a6be30598295885d7008b.png +++ /dev/null Binary files differ diff --git a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/Contents.json b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/Contents.json index 5cb24b8..d3f3580 100644 --- a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/Contents.json +++ b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/Contents.json @@ -1,12 +1,12 @@ { "images" : [ { - "filename" : "3614f397766a6be30598295885d7008b.png", + "filename" : "pic@2x.png", "idiom" : "universal", "scale" : "1x" }, { - "filename" : "3614f397766a6be30598295885d7008b 1.png", + "filename" : "pic@3x.png", "idiom" : "universal", "scale" : "2x" }, diff --git a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@2x.png b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@2x.png new file mode 100644 index 0000000..f096a13 --- /dev/null +++ b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@2x.png Binary files differ diff --git a/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@3x.png b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@3x.png new file mode 100644 index 0000000..e650225 --- /dev/null +++ b/DolphinEnglishLearnStudent/Assets.xcassets/launchScreen.imageset/pic@3x.png Binary files differ diff --git a/DolphinEnglishLearnStudent/Base.lproj/LaunchScreen.storyboard b/DolphinEnglishLearnStudent/Base.lproj/LaunchScreen.storyboard index 39d0b4f..f5ae09d 100644 --- a/DolphinEnglishLearnStudent/Base.lproj/LaunchScreen.storyboard +++ b/DolphinEnglishLearnStudent/Base.lproj/LaunchScreen.storyboard @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> <device id="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/> <dependencies> <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22685"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> @@ -17,17 +17,19 @@ <rect key="frame" x="0.0" y="0.0" width="1180" height="820"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="launchscreen" translatesAutoresizingMaskIntoConstraints="NO" id="ehh-vH-WKP"> - <rect key="frame" x="0.0" y="0.0" width="1180" height="820"/> + <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="logo" translatesAutoresizingMaskIntoConstraints="NO" id="ehh-vH-WKP"> + <rect key="frame" x="540" y="347" width="100" height="100"/> + <constraints> + <constraint firstAttribute="width" constant="100" id="8eh-PY-IFs"/> + <constraint firstAttribute="height" constant="100" id="pX2-6t-nDg"/> + </constraints> </imageView> </subviews> <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> - <constraint firstItem="ehh-vH-WKP" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="Ybg-4L-fSp"/> - <constraint firstAttribute="bottom" secondItem="ehh-vH-WKP" secondAttribute="bottom" id="gd4-Si-weW"/> - <constraint firstItem="ehh-vH-WKP" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="qBO-Ri-etD"/> - <constraint firstItem="ehh-vH-WKP" firstAttribute="trailing" secondItem="6Tk-OE-BBY" secondAttribute="trailing" id="uuP-YQ-Zyd"/> + <constraint firstItem="ehh-vH-WKP" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="Km7-6i-Lhf"/> + <constraint firstItem="ehh-vH-WKP" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="j5b-u9-8ec"/> </constraints> </view> </viewController> @@ -37,7 +39,7 @@ </scene> </scenes> <resources> - <image name="launchscreen" width="787.5" height="535.5"/> + <image name="logo" width="144" height="136"/> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </systemColor> diff --git a/DolphinEnglishLearnStudent/Login/LoginVC.swift b/DolphinEnglishLearnStudent/Login/LoginVC.swift index 35a200d..6161c61 100644 --- a/DolphinEnglishLearnStudent/Login/LoginVC.swift +++ b/DolphinEnglishLearnStudent/Login/LoginVC.swift @@ -10,97 +10,97 @@ class LoginVC: BaseVC { - @IBOutlet weak var btn_login: UIButton! - @IBOutlet weak var tf_authCode: QMUITextField! - @IBOutlet weak var tf_phone: QMUITextField! - @IBOutlet weak var btn_isRead: UIButton! + @IBOutlet weak var btn_login: UIButton! + @IBOutlet weak var tf_authCode: QMUITextField! + @IBOutlet weak var tf_phone: QMUITextField! + @IBOutlet weak var btn_isRead: UIButton! - override func viewDidLoad() { - super.viewDidLoad() + override func viewDidLoad() { + super.viewDidLoad() - } + } - override func setUI() { - super.setUI() - } + override func setUI() { + super.setUI() + } - private func authInputPhone()->Bool{ - guard !tf_phone.text!.isEmpty else { - alert(msg: "请输入手机号");return false - } + private func authInputPhone()->Bool{ + guard !tf_phone.text!.isEmpty else { + alert(msg: "请输入手机号");return false + } - guard tf_phone.text!.jq_isPhone else { - alert(msg: "请输入正确的手机号");return false - } + guard tf_phone.text!.jq_isPhone else { + alert(msg: "请输入正确的手机号");return false + } - return true - } + return true + } - private func authInputCode()->Bool{ - guard !tf_authCode.text!.isEmpty else { - alert(msg: "请输入验证码");return false - } + private func authInputCode()->Bool{ + guard !tf_authCode.text!.isEmpty else { + alert(msg: "请输入验证码");return false + } - guard tf_authCode.text!.count == 6 else { - alert(msg: "请输入6位验证码");return false - } - return true - } + guard tf_authCode.text!.count == 6 else { + alert(msg: "请输入6位验证码");return false + } + return true + } - @IBAction func chooseAction(_ sender: UIButton) { - sender.isSelected = !sender.isSelected - } + @IBAction func chooseAction(_ sender: UIButton) { + sender.isSelected = !sender.isSelected + } - /// 隐私协议 - @IBAction func privacyAction(_ sender: UIButton) { - let vc = CommonWebVC(type: .PrivacyPolicy) - vc.title = "隐私协议" - self.navigationController?.pushViewController(vc, animated: true) - } + /// 隐私协议 + @IBAction func privacyAction(_ sender: UIButton) { + let vc = CommonWebVC(type: .PrivacyPolicy) + vc.title = "隐私协议" + self.navigationController?.pushViewController(vc, animated: true) + } - /// 用户协议 - @IBAction func privacyUserAction(_ sender: UIButton) { - let vc = CommonWebVC(type: .UserProtocol) - vc.title = "用户协议" - self.navigationController?.pushViewController(vc, animated: true) - } + /// 用户协议 + @IBAction func privacyUserAction(_ sender: UIButton) { + let vc = CommonWebVC(type: .UserProtocol) + vc.title = "用户协议" + self.navigationController?.pushViewController(vc, animated: true) + } - @IBAction func getCodeAction(_ sender: UIButton) { - view.endEditing(true) - guard authInputPhone() else {return} - Services.sendPhoneCode(phone: tf_phone.text!).subscribe(onNext: {_ in - sender.openCountDown(60, defultTitle: "获取验证码", textColor:UIColor(hexStr: "#41A2EB"), unenableColor: .gray) - }).disposed(by: disposeBag) - } + @IBAction func getCodeAction(_ sender: UIButton) { + view.endEditing(true) + guard authInputPhone() else {return} + Services.sendPhoneCode(phone: tf_phone.text!).subscribe(onNext: {_ in + sender.openCountDown(60, defultTitle: "获取验证码", textColor:UIColor(hexStr: "#41A2EB"), unenableColor: .gray) + }).disposed(by: disposeBag) + } - @IBAction func loginAction(_ sender: UIButton) { + @IBAction func loginAction(_ sender: UIButton) { -// DispatchQueue.global().async { -// Task{ -// await InPurchaseManager.testrefundRequest(for: 2000000680173869) -// } -// } + // DispatchQueue.global().async { + // Task{ + // await InPurchaseManager.testrefundRequest(for: 2000000680173869) + // } + // } - guard authInputPhone() else {return} - guard authInputCode() else {return} + guard authInputPhone() else {return} + guard authInputCode() else {return} - guard btn_isRead.isSelected else { - alert(msg: "请阅读并同意《隐私协议》《用户协议》");return - } + guard btn_isRead.isSelected else { + alert(msg: "请阅读并同意《隐私协议》《用户协议》");return + } - view.endEditing(true) - Services.login(phone: tf_phone.text!, code: tf_authCode.text!).subscribe(onNext: {result in - if var token = result.data?.token{ - token.request_time = Int(Date().timeIntervalSince1970) - LoginTokenModel.saveToken(token) - sceneDelegate?.loginSuccess() - } - }).disposed(by: disposeBag) - } + view.endEditing(true) + Services.login(phone: tf_phone.text!, code: tf_authCode.text!).subscribe(onNext: {result in + if var token = result.data?.token{ + token.request_time = Int(Date().timeIntervalSince1970) + LoginTokenModel.saveToken(token) + sceneDelegate?.loginSuccess() + } + }).disposed(by: disposeBag) + } - override var preferredStatusBarStyle: UIStatusBarStyle{ - return .darkContent - } + override var preferredStatusBarStyle: UIStatusBarStyle{ + return .darkContent + } } diff --git a/DolphinEnglishLearnStudent/Models/CommonModel.swift b/DolphinEnglishLearnStudent/Models/CommonModel.swift index d2d2a0c..8f612b6 100644 --- a/DolphinEnglishLearnStudent/Models/CommonModel.swift +++ b/DolphinEnglishLearnStudent/Models/CommonModel.swift @@ -390,8 +390,12 @@ var week: Int = 0 } -struct StudyScheduleModel:HandyJSON,Hashable{ - init() {} +class StudyScheduleModel:HandyJSON,Hashable{ + static func == (lhs: StudyScheduleModel, rhs: StudyScheduleModel) -> Bool { + return lhs.id == rhs.id + } + + required init() {} var answer: Int = 0 var day: Int = 0 diff --git a/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift b/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift index cc6bff5..8cc3bfb 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift @@ -41,15 +41,36 @@ } } }).disposed(by: disposeBag) + + showLaunchImg() + + NotificationCenter.default.rx.notification(UIApplication.didBecomeActiveNotification).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] _ in + self?.showLaunchImg() + }).disposed(by: disposeBag) + } + + private func showLaunchImg(){ + let launchImg = UIImageView(image: UIImage(named: "launchscreen")) + sceneDelegate?.window?.addSubview(launchImg) + launchImg.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + UIView.animate(withDuration: 0.6,delay: 2.5) { + launchImg.alpha = 0 + } completion: { _ in + launchImg.removeFromSuperview() + } + } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - view_yearTwo.jq_gradientColor(colorArr: [UIColor(hexString: "#F0F0F0")!.cgColor,UIColor(hexString: "#DDDDDD")!.cgColor], cornerRadius: 15, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: view_yearTwo.bounds,locations: [NSNumber(value: 0.35)]) - - view_yearThree.jq_gradientColor(colorArr: [UIColor(hexString: "#F0F0F0")!.cgColor,UIColor(hexString: "#DDDDDD")!.cgColor], cornerRadius: 15, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: view_yearTwo.bounds,locations: [NSNumber(value: 0.35)]) - - view_yearFour.jq_gradientColor(colorArr: [UIColor(hexString: "#F0F0F0")!.cgColor,UIColor(hexString: "#DDDDDD")!.cgColor], cornerRadius: 15, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: view_yearTwo.bounds,locations: [NSNumber(value: 0.35)]) +// view_yearTwo.jq_gradientColor(colorArr: [UIColor(hexString: "#F0F0F0")!.cgColor,UIColor(hexString: "#DDDDDD")!.cgColor], cornerRadius: 15, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: view_yearTwo.bounds,locations: [NSNumber(value: 0.35)]) +// +// view_yearThree.jq_gradientColor(colorArr: [UIColor(hexString: "#F0F0F0")!.cgColor,UIColor(hexString: "#DDDDDD")!.cgColor], cornerRadius: 15, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: view_yearTwo.bounds,locations: [NSNumber(value: 0.35)]) +// +// view_yearFour.jq_gradientColor(colorArr: [UIColor(hexString: "#F0F0F0")!.cgColor,UIColor(hexString: "#DDDDDD")!.cgColor], cornerRadius: 15, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: view_yearTwo.bounds,locations: [NSNumber(value: 0.35)]) } @IBAction func listenAction(_ sender: UIButton) { diff --git a/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib b/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib index d71ce16..0c34840 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib +++ b/DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <device id="ipad10_2" orientation="landscape" layout="fullscreen" appearance="light"/> <dependencies> <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> @@ -93,30 +93,26 @@ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="638-4h-RmO"> <rect key="frame" x="0.0" y="0.0" width="99" height="96"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第一年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mzm-m2-TUM"> - <rect key="frame" x="0.0" y="58" width="99" height="22"/> - <constraints> - <constraint firstAttribute="height" constant="22" id="0E8-lU-VAm"/> - </constraints> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mzm-m2-TUM"> + <rect key="frame" x="0.0" y="14" width="99" height="66"/> + <string key="text">第一年 + +听</string> <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> <nil key="textColor"/> <nil key="highlightedColor"/> </label> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_listen" translatesAutoresizingMaskIntoConstraints="NO" id="G0e-mp-Ewt"> - <rect key="frame" x="28.5" y="16" width="42" height="28"/> - </imageView> </subviews> <color key="backgroundColor" red="0.42745098039215684" green="0.81960784313725488" blue="0.72941176470588232" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="bottom" secondItem="mzm-m2-TUM" secondAttribute="bottom" constant="16" id="1DJ-Ab-UMy"/> <constraint firstAttribute="trailing" secondItem="mzm-m2-TUM" secondAttribute="trailing" id="4EB-JA-dgg"/> - <constraint firstItem="G0e-mp-Ewt" firstAttribute="centerX" secondItem="mzm-m2-TUM" secondAttribute="centerX" id="Fep-Ru-CO8"/> <constraint firstAttribute="width" constant="99" id="a46-Aj-ZVI"/> - <constraint firstItem="G0e-mp-Ewt" firstAttribute="top" secondItem="638-4h-RmO" secondAttribute="top" constant="16" id="lcU-Ve-EuA"/> <constraint firstItem="mzm-m2-TUM" firstAttribute="leading" secondItem="638-4h-RmO" secondAttribute="leading" id="ysB-ce-xHs"/> + <constraint firstItem="mzm-m2-TUM" firstAttribute="top" secondItem="638-4h-RmO" secondAttribute="top" constant="14" id="ytO-aq-mzd"/> </constraints> </view> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="听 - 听懂英语声音世界,建立声音认知逻听音有物,见物有音。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rYc-7O-AJr"> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="听音 → 在孩子大脑中建立英语声音认知逻辑,听懂英语声音世界。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rYc-7O-AJr"> <rect key="frame" x="120" y="19.5" width="388" height="57.5"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> <nil key="textColor"/> @@ -162,37 +158,33 @@ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Aru-TP-eo5"> <rect key="frame" x="0.0" y="0.0" width="99" height="96"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第二年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JUx-1g-3IQ"> - <rect key="frame" x="0.0" y="58" width="99" height="22"/> - <constraints> - <constraint firstAttribute="height" constant="22" id="2Il-ag-42y"/> - </constraints> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JUx-1g-3IQ"> + <rect key="frame" x="0.0" y="14" width="99" height="66"/> + <string key="text">第二年 + +认读</string> <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_read" translatesAutoresizingMaskIntoConstraints="NO" id="Bea-xz-ioa"> - <rect key="frame" x="31" y="16" width="37" height="37"/> - </imageView> </subviews> <color key="backgroundColor" red="0.65490196078431373" green="0.65490196078431373" blue="0.65490196078431373" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> - <constraint firstItem="Bea-xz-ioa" firstAttribute="top" secondItem="Aru-TP-eo5" secondAttribute="top" constant="16" id="PKa-E7-X04"/> + <constraint firstItem="JUx-1g-3IQ" firstAttribute="top" secondItem="Aru-TP-eo5" secondAttribute="top" constant="14" id="QwN-gi-z1i"/> <constraint firstAttribute="trailing" secondItem="JUx-1g-3IQ" secondAttribute="trailing" id="SBw-MM-kdp"/> <constraint firstItem="JUx-1g-3IQ" firstAttribute="leading" secondItem="Aru-TP-eo5" secondAttribute="leading" id="baE-0U-bA9"/> <constraint firstAttribute="width" constant="99" id="maH-iF-185"/> <constraint firstAttribute="bottom" secondItem="JUx-1g-3IQ" secondAttribute="bottom" constant="16" id="nWb-EA-fcK"/> - <constraint firstItem="Bea-xz-ioa" firstAttribute="centerX" secondItem="JUx-1g-3IQ" secondAttribute="centerX" id="r33-Se-sFp"/> </constraints> </view> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="认读>拼读>阅读 - 建立文字认知逻辑。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E6l-m4-aFf"> - <rect key="frame" x="120" y="33.5" width="388" height="29"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="认读 → 拼读 → 阅读 → 建立英语文字认知逻辑。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E6l-m4-aFf"> + <rect key="frame" x="120" y="19.5" width="388" height="57.5"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> - <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <color key="backgroundColor" red="0.90196078431372551" green="0.90196078431372551" blue="0.90196078431372551" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="Aru-TP-eo5" firstAttribute="top" secondItem="bRK-h8-9be" secondAttribute="top" id="2WS-er-WTU"/> <constraint firstAttribute="bottom" secondItem="Aru-TP-eo5" secondAttribute="bottom" id="8Cu-vW-39p"/> @@ -228,37 +220,33 @@ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rof-Bc-DBt"> <rect key="frame" x="0.0" y="0.0" width="99" height="96"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第三年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s1C-FB-pdy"> - <rect key="frame" x="0.0" y="58" width="99" height="22"/> - <constraints> - <constraint firstAttribute="height" constant="22" id="LAU-JU-br9"/> - </constraints> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s1C-FB-pdy"> + <rect key="frame" x="0.0" y="14" width="99" height="66"/> + <string key="text">第三年 + +文化</string> <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_read_1" translatesAutoresizingMaskIntoConstraints="NO" id="K2B-Ql-Ffz"> - <rect key="frame" x="30" y="16" width="39" height="39"/> - </imageView> </subviews> <color key="backgroundColor" red="0.65490196078431373" green="0.65490196078431373" blue="0.65490196078431373" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="bottom" secondItem="s1C-FB-pdy" secondAttribute="bottom" constant="16" id="CM9-Nx-GoU"/> + <constraint firstItem="s1C-FB-pdy" firstAttribute="top" secondItem="rof-Bc-DBt" secondAttribute="top" constant="14" id="FaK-81-XKB"/> <constraint firstAttribute="trailing" secondItem="s1C-FB-pdy" secondAttribute="trailing" id="HjS-48-xe4"/> <constraint firstItem="s1C-FB-pdy" firstAttribute="leading" secondItem="rof-Bc-DBt" secondAttribute="leading" id="I6H-BM-MAM"/> <constraint firstAttribute="width" constant="99" id="n1G-CS-AjA"/> - <constraint firstItem="K2B-Ql-Ffz" firstAttribute="centerX" secondItem="s1C-FB-pdy" secondAttribute="centerX" id="uYv-ek-w4C"/> - <constraint firstItem="K2B-Ql-Ffz" firstAttribute="top" secondItem="rof-Bc-DBt" secondAttribute="top" constant="16" id="w7g-aR-5hG"/> </constraints> </view> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="海量阅读 - 建立英语文化认知逻辑。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fmd-pO-bSH"> - <rect key="frame" x="120" y="33.5" width="388" height="29"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="海量阅读 → 建立英语世界文化认知逻辑。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fmd-pO-bSH"> + <rect key="frame" x="120" y="19.5" width="388" height="57.5"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> - <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <color key="backgroundColor" red="0.90196078430000004" green="0.90196078430000004" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstAttribute="bottom" secondItem="rof-Bc-DBt" secondAttribute="bottom" id="COZ-ac-5bK"/> <constraint firstAttribute="height" constant="96" id="OfW-EV-TmL"/> @@ -294,37 +282,33 @@ <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vQZ-vC-WZM"> <rect key="frame" x="0.0" y="0.0" width="99" height="96"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第四年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5ab-W8-1Bp"> - <rect key="frame" x="0.0" y="58" width="99" height="22"/> - <constraints> - <constraint firstAttribute="height" constant="22" id="xff-4c-Obh"/> - </constraints> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5ab-W8-1Bp"> + <rect key="frame" x="0.0" y="14" width="99" height="66"/> + <string key="text">第四年 + +测试</string> <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/> <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_culture" translatesAutoresizingMaskIntoConstraints="NO" id="CIB-II-EsI"> - <rect key="frame" x="9" y="16" width="81" height="17"/> - </imageView> </subviews> <color key="backgroundColor" red="0.65490196078431373" green="0.65490196078431373" blue="0.65490196078431373" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> - <constraint firstItem="CIB-II-EsI" firstAttribute="centerX" secondItem="5ab-W8-1Bp" secondAttribute="centerX" id="5ln-hC-BQ4"/> <constraint firstAttribute="trailing" secondItem="5ab-W8-1Bp" secondAttribute="trailing" id="6nf-xv-hQk"/> - <constraint firstItem="CIB-II-EsI" firstAttribute="top" secondItem="vQZ-vC-WZM" secondAttribute="top" constant="16" id="LiY-JU-Kuo"/> + <constraint firstItem="5ab-W8-1Bp" firstAttribute="top" secondItem="vQZ-vC-WZM" secondAttribute="top" constant="14" id="Eq7-uU-O7o"/> <constraint firstAttribute="bottom" secondItem="5ab-W8-1Bp" secondAttribute="bottom" constant="16" id="dfC-Xy-Nen"/> <constraint firstItem="5ab-W8-1Bp" firstAttribute="leading" secondItem="vQZ-vC-WZM" secondAttribute="leading" id="l6v-ZM-cnL"/> <constraint firstAttribute="width" constant="99" id="sga-rD-HzD"/> </constraints> </view> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="测试通关 - 升学 游学 留学准备。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5z7-Xs-obp"> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="测试通关 → 升学 → 游学 → 留学准备。" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5z7-Xs-obp"> <rect key="frame" x="120" y="33.5" width="388" height="29"/> <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/> <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> </subviews> - <color key="backgroundColor" systemColor="systemBackgroundColor"/> + <color key="backgroundColor" red="0.90196078430000004" green="0.90196078430000004" blue="0.90196078430000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <constraints> <constraint firstItem="vQZ-vC-WZM" firstAttribute="top" secondItem="LGI-6d-ayY" secondAttribute="top" id="4As-9k-hNC"/> <constraint firstAttribute="height" constant="96" id="6xp-by-1B1"/> @@ -359,10 +343,6 @@ </objects> <resources> <image name="home_arrow_up" width="20" height="37"/> - <image name="home_culture" width="81" height="17"/> - <image name="home_listen" width="42" height="28"/> - <image name="home_read" width="37" height="37"/> - <image name="home_read_1" width="39" height="39"/> <image name="logo_1" width="217" height="114"/> <systemColor name="systemBackgroundColor"> <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.swift index c8a93b6..469ac15 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.swift @@ -9,7 +9,7 @@ class HomeListen_item_TV2Cell: UITableViewCell { @IBOutlet weak var label_title: UILabel! - @IBOutlet weak var view_state: UIStackView! +// @IBOutlet weak var view_state: UIStackView! @IBOutlet weak var label_state: UILabel! @IBOutlet weak var cons_trail: NSLayoutConstraint! @IBOutlet weak var label_subTitle: UILabel! diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.xib b/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.xib index c93ce37..14587ca 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.xib +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_item_TV2Cell.xib @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <device id="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/> <dependencies> <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/> <capability name="System colors in document resources" minToolsVersion="11.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> @@ -26,59 +26,48 @@ <nil key="textColor"/> <nil key="highlightedColor"/> </label> - <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="9" translatesAutoresizingMaskIntoConstraints="NO" id="T2a-iW-660"> - <rect key="frame" x="79.5" y="10" width="290" height="48"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="y4G-hn-HBf"> + <rect key="frame" x="78.5" y="23" width="15" height="22"/> + <constraints> + <constraint firstAttribute="height" constant="22" id="x8o-rQ-0sh"/> + </constraints> + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYj-jQ-pUN"> + <rect key="frame" x="203" y="28" width="50" height="17"/> <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LabelLabelLabelLabel" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="y4G-hn-HBf"> - <rect key="frame" x="0.0" y="0.0" width="290" height="22"/> - <constraints> - <constraint firstAttribute="height" constant="22" id="x8o-rQ-0sh"/> - </constraints> - <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/> - <nil key="textColor"/> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VQQ-aH-jOl"> + <rect key="frame" x="7" y="2.5" width="36" height="14.5"/> + <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/> + <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <nil key="highlightedColor"/> </label> - <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dBL-Qk-dtp"> - <rect key="frame" x="0.0" y="31" width="290" height="17"/> - <subviews> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KYj-jQ-pUN"> - <rect key="frame" x="0.0" y="0.0" width="50" height="17"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VQQ-aH-jOl"> - <rect key="frame" x="7" y="2.5" width="36" height="14.5"/> - <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/> - <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" red="0.40000000000000002" green="0.81176470588235294" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - <constraints> - <constraint firstAttribute="height" constant="17" id="6uJ-xn-2wu"/> - <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="LIt-KZ-xSj"/> - <constraint firstAttribute="trailing" secondItem="VQQ-aH-jOl" secondAttribute="trailing" constant="7" id="dXS-my-h4B"/> - <constraint firstItem="VQQ-aH-jOl" firstAttribute="top" secondItem="KYj-jQ-pUN" secondAttribute="top" constant="2.5" id="jAZ-vl-h9L"/> - <constraint firstItem="VQQ-aH-jOl" firstAttribute="leading" secondItem="KYj-jQ-pUN" secondAttribute="leading" constant="7" id="nnj-iB-cDe"/> - </constraints> - <userDefinedRuntimeAttributes> - <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> - <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> - <real key="value" value="8.5"/> - </userDefinedRuntimeAttribute> - </userDefinedRuntimeAttributes> - </view> - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Als-bu-aKc"> - <rect key="frame" x="50" y="0.0" width="240" height="17"/> - </view> - </subviews> - </stackView> </subviews> - </stackView> + <color key="backgroundColor" red="0.40000000000000002" green="0.81176470588235294" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstAttribute="height" constant="17" id="6uJ-xn-2wu"/> + <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="LIt-KZ-xSj"/> + <constraint firstAttribute="trailing" secondItem="VQQ-aH-jOl" secondAttribute="trailing" constant="7" id="dXS-my-h4B"/> + <constraint firstItem="VQQ-aH-jOl" firstAttribute="top" secondItem="KYj-jQ-pUN" secondAttribute="top" constant="2.5" id="jAZ-vl-h9L"/> + <constraint firstItem="VQQ-aH-jOl" firstAttribute="leading" secondItem="KYj-jQ-pUN" secondAttribute="leading" constant="7" id="nnj-iB-cDe"/> + </constraints> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/> + <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB"> + <real key="value" value="8.5"/> + </userDefinedRuntimeAttribute> + </userDefinedRuntimeAttributes> + </view> </subviews> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <constraints> + <constraint firstItem="KYj-jQ-pUN" firstAttribute="centerY" secondItem="Guy-ui-ByM" secondAttribute="centerY" constant="2.5" id="9tv-ws-xBw"/> <constraint firstItem="28J-ZC-IiE" firstAttribute="centerY" secondItem="Guy-ui-ByM" secondAttribute="centerY" id="BBT-AE-CjT"/> - <constraint firstItem="T2a-iW-660" firstAttribute="leading" secondItem="28J-ZC-IiE" secondAttribute="trailing" constant="24" id="bR3-A2-xsr"/> - <constraint firstItem="T2a-iW-660" firstAttribute="centerY" secondItem="Guy-ui-ByM" secondAttribute="centerY" id="bZL-tt-qBL"/> + <constraint firstItem="y4G-hn-HBf" firstAttribute="leading" secondItem="28J-ZC-IiE" secondAttribute="trailing" constant="23" id="DAN-Z9-KNH"/> + <constraint firstAttribute="trailing" secondItem="KYj-jQ-pUN" secondAttribute="trailing" constant="14" id="F8c-TD-8TL"/> + <constraint firstItem="y4G-hn-HBf" firstAttribute="centerY" secondItem="Guy-ui-ByM" secondAttribute="centerY" id="LKh-1T-Fb7"/> <constraint firstItem="28J-ZC-IiE" firstAttribute="leading" secondItem="Guy-ui-ByM" secondAttribute="leading" constant="31" id="yNu-7a-AkO"/> </constraints> <userDefinedRuntimeAttributes> @@ -102,7 +91,6 @@ <outlet property="label_subTitle" destination="y4G-hn-HBf" id="eYy-tV-Wde"/> <outlet property="label_title" destination="28J-ZC-IiE" id="kDk-K7-10L"/> <outlet property="view_center" destination="Guy-ui-ByM" id="Q0d-UZ-Xp1"/> - <outlet property="view_state" destination="dBL-Qk-dtp" id="yka-5k-OJa"/> <outlet property="view_t" destination="KYj-jQ-pUN" id="K3t-mH-v9G"/> </connections> <point key="canvasLocation" x="156.58536585365854" y="29.237288135593221"/> diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift index 9d9c64e..4964bca 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFightVC.swift @@ -26,11 +26,11 @@ var rawTitle:String{ switch self { - case .lesson1:return "自主学习1-听音选图" - case .lesson2:return "自主学习2-看图选音" - case .lesson3:return "自主学习3-归纳排除" - case .lesson4:return "自主学习4-有问有答" - case .lesson5:return "自主学习5-音图相配" + case .lesson1:return "听音选图" + case .lesson2:return "看图选音" + case .lesson3:return "归纳排除" + case .lesson4:return "有问有答" + case .lesson5:return "音图相配" case .game1:return "游戏类型1-超级听力" case .game2:return "游戏类型2-超级记忆" case .story1:return "自主故事1-看图配音" @@ -103,7 +103,13 @@ var data:Any? var maxPage = 0 //最大页记录 - var teamScheduleModel:TeamScheduleModel? //上次中途退出,答题记录 + //上次中途退出,答题记录 + var teamScheduleModel:TeamScheduleModel?{ + didSet{ + setPages() + btn_random.isHidden = (viewModel.listenType.value == .game1 || viewModel.listenType.value == .game2) + } + } var pages = [[ListenSubCardModel]]() //分页显示 private var notiObject:Dictionary<String,Any>? @@ -199,6 +205,19 @@ return btn }() + private lazy var btn_random:UIButton = { + let btn = UIButton(type: .custom) + btn.setTitle("随机答题", for: .normal) + btn.titleLabel?.font = .systemFont(ofSize: 14, weight: .medium) + btn.setTitleColor(Config.ThemeColor, for: .normal) + btn.jq_borderColor = Config.ThemeColor + btn.backgroundColor = .white + btn.jq_borderWidth = 1 + btn.jq_cornerRadius = 4 + btn.isHidden = true + return btn + }() + private lazy var pageVC:FFPageViewController = { let vc = FFPageViewController() vc.scrollview.isScrollEnabled = false @@ -244,8 +263,9 @@ btn_forward_mini.addTarget(self, action: #selector(beforeAction_mini), for: .touchUpInside) btn_next.addTarget(self, action: #selector(nextAction), for: .touchUpInside) btn_beAgain.addTarget(self, action: #selector(beAgaionAction), for: .touchUpInside) + btn_random.addTarget(self, action: #selector(randomAnsterAction), for: .touchUpInside) - setPages() +// setPages() // pageVC.reloadData() timer = Timer(fire: .distantPast, interval: 1.0, repeats: true, block: {[weak self] _ in @@ -254,12 +274,16 @@ timer.fire() RunLoop.current.add(timer, forMode: .common) - setPages() - if let teamSchedule = teamScheduleModel{ - viewModel.correctNum = viewModel.correctNum + teamSchedule.correctNumber - viewModel.errorNum = teamSchedule.answerNumber - teamSchedule.correctNumber - maxPage = teamSchedule.schedule + if let m = data as? ListenNewModel{ + viewModel.correctNum = viewModel.correctNum + (teamScheduleModel?.correctNumber ?? 0) + viewModel.errorNum = (teamScheduleModel?.answerNumber ?? 0) - (teamScheduleModel?.correctNumber ?? 0) + maxPage = teamScheduleModel?.schedule ?? 0 + + + btn_random.isHidden = (viewModel.listenType.value == .game1 || viewModel.listenType.value == .game2) + + print("---->>>>>2:\((data as? ListenNewModel)!.list.count)") switch viewModel.listenType.value{ case .lesson1: @@ -412,6 +436,11 @@ make.width.equalTo(124) } + btn_random.snp.makeConstraints { make in + make.width.equalTo(124) + make.height.equalTo(40) + } + let stackView = UIStackView(arrangedSubviews: [btn_beAgain,label_pageNum,btn_exit]) if viewModel.listenType.value == .story2{ @@ -428,6 +457,12 @@ make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom).offset(-5) make.centerX.equalToSuperview() make.height.equalTo(40) + } + + view.addSubview(btn_random) + btn_random.snp.makeConstraints { make in + make.centerY.equalTo(stackView) + make.trailing.equalToSuperview().offset(-18) } switch viewModel.listenType.value{ @@ -604,7 +639,7 @@ timer.invalidate() - let vc = HomeStudyCompleteVC(viewModel: viewModel,studyScheduleModel: studyScheduleModel!) + let vc = HomeStudyCompleteVC(viewModel: viewModel,studyScheduleModel: nil) vc.title = viewModel.listenType.value.rawTitle vc.viewModel = viewModel push(vc: vc) @@ -763,6 +798,26 @@ } } + @objc func randomAnsterAction(){ + + var count:Int = 0 + if data is ListenNewModel{ + if viewModel.listenType.value == .lesson1{ + count = (data as! ListenNewModel).subjectList.count + } + + if viewModel.listenType.value == .lesson2{ + count = (data as! ListenNewModel).subjectList.count + } + + count = pages.count + } + + RandromAnsterView.show(count) { index in + self.pageVC.scroll(toPage: index, animation: true) + } + } + @objc func nextAction(){ listenFightLine = .next if viewModel.listenType.value == .story2{ diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift index 14d79df..fa5bbb7 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenGame_1_VC.swift @@ -238,8 +238,9 @@ case .success: timer?.fireDate = .distantFuture viewModel.answerType.accept(.success) - collectionView.reloadData() - if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_ListenFight_Game_CCell", for: viewModel.selectIndex.value!) as? ListenFight_Game_CCell{ +// collectionView.reloadData() + + if let cell = collectionView.cellForItem(at: viewModel.selectIndex.value!) as? ListenFight_Game_CCell{ let newRect = cell.contentView.convert(cell.bounds, from: self.collectionView) let x = abs(newRect.origin.x) + self.collectionView.contentInset.left + 5 let y = abs(newRect.origin.y) + 99 + 5 diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubV2VC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubV2VC.swift index 5e79f89..a46cea7 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubV2VC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubV2VC.swift @@ -84,11 +84,8 @@ let jumpIndex:IndexPath = IndexPath(row: row, section: 1) tableView(self.tableView, didSelectRowAt: jumpIndex) } -} -extension HomeListenSubV2VC:UITableViewDelegate{ - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - + func jumpVC(studyScheduleModel:StudyScheduleModel,indexPath:IndexPath){ sceneDelegate?.startTimer() let day = indexPath.row + 1 @@ -103,8 +100,8 @@ fightVC.title = ListenType.lesson1.rawTitle fightVC.teamScheduleModel = teamSchedule.data fightVC.data = data - fightVC.studyScheduleModel = self?.studyScheduleModel JQ_currentViewController().jq_push(vc:fightVC) + print("---->>>>>1:\(teamSchedule.data)") } }).disposed(by: weakSelf.disposeBag) }).disposed(by: disposeBag) @@ -121,7 +118,6 @@ fightVC.title = ListenType.lesson2.rawTitle fightVC.teamScheduleModel = teamSchedule.data fightVC.data = data - fightVC.studyScheduleModel = self?.studyScheduleModel JQ_currentViewController().jq_push(vc:fightVC) } }).disposed(by: weakSelf.disposeBag) @@ -140,7 +136,6 @@ fightVC.title = ListenType.lesson3.rawTitle fightVC.teamScheduleModel = teamSchedule.data fightVC.data = data - fightVC.studyScheduleModel = self?.studyScheduleModel JQ_currentViewController().jq_push(vc: fightVC) } }).disposed(by: weakSelf.disposeBag) @@ -158,7 +153,6 @@ fightVC.title = ListenType.lesson4.rawTitle fightVC.teamScheduleModel = teamSchedule.data fightVC.data = data - fightVC.studyScheduleModel = self?.studyScheduleModel JQ_currentViewController().jq_push(vc: fightVC) } }).disposed(by: weakSelf.disposeBag) @@ -176,14 +170,13 @@ fightVC.title = ListenType.lesson5.rawTitle fightVC.teamScheduleModel = teamSchedule.data fightVC.data = data - fightVC.studyScheduleModel = self?.studyScheduleModel JQ_currentViewController().jq_push(vc: fightVC) } }).disposed(by: weakSelf.disposeBag) }).disposed(by: disposeBag) } - guard (studyScheduleModel?.day ?? 0) >= 6 else {return} + guard (studyScheduleModel.day) >= 6 else {return} //自主游戏 if indexPath.row == 5{ @@ -247,6 +240,22 @@ } } + +extension HomeListenSubV2VC:UITableViewDelegate{ + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + + Services.studySchedule(week: week).subscribe(onNext: {[weak self]data in + guard let weakSelf = self else { return } + var studyScheduleModel = StudyScheduleModel() + if let m = data.data{ + studyScheduleModel = m + } + weakSelf.jumpVC(studyScheduleModel: studyScheduleModel, indexPath: indexPath) + }).disposed(by: disposeBag) + + } +} + extension HomeListenSubV2VC:UITableViewDataSource{ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if section == 0{return 1} @@ -261,47 +270,47 @@ if indexPath.section == 0{ let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListen_process_TCell", for: indexPath) as! HomeListen_process_TCell cell.studyScheduleModel = studyScheduleModel - cell.label_currentWeek.text = "当前周目:\(week.jq_cn)周目" + cell.label_currentWeek.text = "自主学习:第\(week ?? 0)周" return cell }else{ let cell = tableView.dequeueReusableCell(withIdentifier: "_HomeListen_item_TV2Cell", for: indexPath) as! HomeListen_item_TV2Cell cell.label_title.text = "\(indexPath.row + 1)" cell.label_title.text = "第\(indexPath.row + 1)天" - cell.view_state.isHidden = false +// cell.view_state.isHidden = false switch indexPath.row { case 0: - cell.label_subTitle.text = "自主学习1-听音选图" + cell.label_subTitle.text = "听音选图" cell.setProgress(progress: studyScheduleModel?.listen ?? 0) cell.view_center.backgroundColor = UIColor.white case 1: - cell.label_subTitle.text = "自主学习2-看图选音" + cell.label_subTitle.text = "看图选音" cell.setProgress(progress: studyScheduleModel?.look ?? 0) if (studyScheduleModel?.listen ?? 0) >= 90{ cell.view_center.backgroundColor = UIColor.white } case 2: - cell.label_subTitle.text = "自主学习3-归纳排除" + cell.label_subTitle.text = "归纳排除" cell.setProgress(progress: studyScheduleModel?.computeSchedule ?? 0) if (studyScheduleModel?.look ?? 0) >= 90{ cell.view_center.backgroundColor = UIColor.white } case 3: - cell.label_subTitle.text = "自主学习4-有问有答" + cell.label_subTitle.text = "有问有答" cell.setProgress(progress: studyScheduleModel?.answer ?? 0) if (studyScheduleModel?.computeSchedule ?? 0) >= 90{ cell.view_center.backgroundColor = UIColor.white } case 4: - cell.label_subTitle.text = "自主学习5-音图相配" + cell.label_subTitle.text = "音图相配" cell.setProgress(progress: studyScheduleModel?.pair ?? 0) if (studyScheduleModel?.answer ?? 0) >= 90{ cell.view_center.backgroundColor = UIColor.white } case 5: cell.label_subTitle.text = "自主游戏" - cell.view_state.isHidden = true +// cell.view_state.isHidden = true if (studyScheduleModel?.day ?? 0) >= 6{ cell.setProgress(progress: 100) }else{ @@ -309,7 +318,7 @@ } case 6: cell.label_subTitle.text = "听故事" - cell.view_state.isHidden = true +// cell.view_state.isHidden = true if (studyScheduleModel?.day ?? 0) >= 6{ cell.setProgress(progress: 100) }else{ diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift index a54491d..46e32a7 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift @@ -245,7 +245,7 @@ cell.view_bg1.isHidden = true switch indexPath.row { case 0: - cell.label_title.text = "自主学习1-听音选图" + cell.label_title.text = "听音选图" cell.view_bg2.backgroundColor = UIColor(hexString: "#6EC3FF") if studyScheduleModel?.day == (page + 1){ @@ -256,7 +256,7 @@ cell.setProgress(progress: 0) } case 1: - cell.label_title.text = "自主学习2-看图选音" + cell.label_title.text = "看图选音" cell.view_bg2.backgroundColor = UIColor(hexString: "#FF9A85") if studyScheduleModel?.day == (page + 1){ @@ -267,7 +267,7 @@ cell.setProgress(progress: 0) } case 2: - cell.label_title.text = "自主学习3-归纳排除" + cell.label_title.text = "归纳排除" cell.view_bg2.backgroundColor = UIColor(hexString: "#28C8C5") @@ -279,7 +279,7 @@ cell.setProgress(progress: 0) } case 3: - cell.label_title.text = "自主学习4-有问有答" + cell.label_title.text = "有问有答" cell.view_bg2.backgroundColor = UIColor(hexString: "#F8A169") @@ -291,7 +291,7 @@ cell.setProgress(progress: 0) } case 4: - cell.label_title.text = "自主学习5-音图相配" + cell.label_title.text = "音图相配" cell.view_bg2.backgroundColor = UIColor(hexString: "#92CADB") if studyScheduleModel?.day == (page + 1){ @@ -310,10 +310,10 @@ cell.view_state.isHidden = true switch indexPath.row { case 0: - cell.label_title.text = "自主游戏1-超级听力" + cell.label_title.text = "超级听力" cell.view_bg1.backgroundColor = UIColor(hexString: "#6EC3FF") case 1: - cell.label_title.text = "自主游戏2-超级记忆" + cell.label_title.text = "超级记忆" cell.view_bg1.backgroundColor = UIColor(hexString: "#FF9A85") default:break } @@ -324,10 +324,10 @@ cell.view_state.isHidden = true switch indexPath.row { case 0: - cell.label_title.text = "自主故事1-看图配音" + cell.label_title.text = "看图配音" cell.view_bg1.backgroundColor = UIColor(hexString: "#6EC3FF") case 1: - cell.label_title.text = "自主故事2-框架记忆" + cell.label_title.text = "框架记忆" cell.view_bg1.backgroundColor = UIColor(hexString: "#FF9A85") default:break } diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/View/RandromAnsterView.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/View/RandromAnsterView.swift new file mode 100644 index 0000000..559e958 --- /dev/null +++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/View/RandromAnsterView.swift @@ -0,0 +1,208 @@ +// +// RandromAnsterView.swift +// DolphinEnglishLearnStudent +// +// Created by 无故事王国 on 2025/9/2. +// + +import UIKit +let CellW = JQ_ScreenW * 0.0336 + +class RandromAnsterView: UIView { + private var count:Int = 0 + private var selectIndex:IndexPath? + private var clickClouse:((Int)->Void)? + + private var collectionView:UICollectionView = { + let uICollectionViewFlowLayout = UICollectionViewFlowLayout() + uICollectionViewFlowLayout.itemSize = CGSizeMake(CellW, CellW) + uICollectionViewFlowLayout.minimumLineSpacing = 20 + uICollectionViewFlowLayout.minimumInteritemSpacing = 20 + let collectionV = UICollectionView(frame: .zero, collectionViewLayout: uICollectionViewFlowLayout) + collectionV.register(RandromAnsterCCell.self, forCellWithReuseIdentifier: "_RandromAnsterCCell") + return collectionV + }() + + private var contentView:UIView = { + let v = UIView() + v.backgroundColor = .white + v.jq_cornerRadius = 10 + return v + }() + + private var closeBtn:UIButton = { + let btn = UIButton(type: .custom) + btn.setTitle("关闭", for: .normal) + btn.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium) + btn.jq_borderWidth = 1 + btn.layer.cornerRadius = 4 + btn.layer.borderColor = UIColor(hexString:"#41A2EB")?.cgColor + btn.setTitleColor(UIColor(hexString:"#41A2EB"), for: .normal) + return btn + }() + + private var commitBtn:UIButton = { + let btn = UIButton(type: .custom) + btn.setTitle("确认", for: .normal) + btn.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium) + btn.jq_borderWidth = 1 + btn.layer.cornerRadius = 4 + btn.layer.borderColor = UIColor(hexString:"#41A2EB")?.cgColor + btn.setTitleColor(UIColor(hexString:"#41A2EB"), for: .normal) + return btn + }() + + override init(frame: CGRect) { + super.init(frame: frame) + collectionView.delegate = self + collectionView.dataSource = self + closeBtn.addTarget(self, action: #selector(closeAction), for: .touchUpInside) + commitBtn.addTarget(self, action: #selector(commitAction), for: .touchUpInside) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + static func show(_ count:Int = 0,clickClouse:@escaping (Int)->Void){ + let randromAnsterView = RandromAnsterView(frame: .zero) + randromAnsterView.clickClouse = clickClouse + randromAnsterView.count = count + randromAnsterView.frame = sceneDelegate?.window?.frame ?? .zero + randromAnsterView.backgroundColor = UIColor(hexString: "#484849") + randromAnsterView.contentView.transform = .init(scaleX: 0.1, y: 0.1) + randromAnsterView.alpha = 0 + sceneDelegate?.window?.addSubview(randromAnsterView) + + randromAnsterView.addSubview(randromAnsterView.contentView) + randromAnsterView.contentView.snp.makeConstraints { make in + make.center.equalToSuperview() + make.width.equalTo(JQ_ScreenW * 0.3433) + make.height.equalTo(JQ_ScreenW * 0.3433 * 0.7) + } + + randromAnsterView.closeBtn.snp.makeConstraints { make in + make.width.equalTo(124) + make.height.equalTo(40) + } + + randromAnsterView.commitBtn.snp.makeConstraints { make in + make.width.equalTo(124) + make.height.equalTo(40) + } + + let uIStackView = UIStackView(arrangedSubviews: [randromAnsterView.closeBtn,randromAnsterView.commitBtn]) + uIStackView.axis = .horizontal + uIStackView.spacing = 27 + uIStackView.distribution = .equalSpacing + randromAnsterView.contentView.addSubview(uIStackView) + uIStackView.snp.makeConstraints { make in + make.bottom.equalToSuperview().offset(-20) + make.width.equalTo(275) + make.centerX.equalToSuperview() + } + + let titleL = UILabel() + titleL.text = "标题" + titleL.font = .systemFont(ofSize: 18, weight: .medium) + titleL.textColor = UIColor.black.withAlphaComponent(0.8) + randromAnsterView.contentView.addSubview(titleL) + titleL.snp.makeConstraints { make in + make.top.equalToSuperview().offset(32) + make.centerX.equalToSuperview() + make.height.equalTo(18) + } + + randromAnsterView.contentView.addSubview(randromAnsterView.collectionView) + randromAnsterView.collectionView.snp.makeConstraints { make in + make.top.equalTo(titleL.snp.bottom).offset(35) + make.leading.equalTo(34) + make.trailing.equalTo(-34) + make.bottom.equalTo(uIStackView.snp.top).offset(-5) + } + + UIView.animate(withDuration: 0.2) { + randromAnsterView.contentView.transform = .identity + randromAnsterView.alpha = 1 + } completion: { _ in + + } + } + + @objc func closeAction(){ + UIView.animate(withDuration: 0.2) { + self.contentView.transform = .init(scaleX: 0.1, y: 0.1) + self.alpha = 0 + } completion: { _ in + self.removeFromSuperview() + } + } + + @objc func commitAction(){ + UIView.animate(withDuration: 0.2) { + self.contentView.transform = .init(scaleX: 0.1, y: 0.1) + self.alpha = 0 + } completion: { _ in + if let index = self.selectIndex{ + self.clickClouse?(index.row) + } + self.removeFromSuperview() + } + } +} + +extension RandromAnsterView:UICollectionViewDelegate{ + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { +// clickClouse?(indexPath.row) + selectIndex = indexPath + collectionView.reloadData() + } +} + +extension RandromAnsterView:UICollectionViewDataSource{ + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + return count + } + + func numberOfSections(in collectionView: UICollectionView) -> Int { + return 1 + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_RandromAnsterCCell", for: indexPath) as! RandromAnsterCCell + cell.titleL.text = "\(indexPath.row + 1)" + + if indexPath.row == selectIndex?.row{ + cell.titleL.jq_borderColor = UIColor(hexString: "#41A2EB") + cell.titleL.textColor = UIColor(hexString: "#41A2EB") + }else{ + cell.titleL.jq_borderColor = .black.withAlphaComponent(0.2) + cell.titleL.textColor = .black.withAlphaComponent(0.6) + } + return cell + } +} + +class RandromAnsterCCell:UICollectionViewCell{ + + + private(set) var titleL:UILabel! + + override init(frame: CGRect) { + super.init(frame: frame) + titleL = UILabel() + contentView.addSubview(titleL) + titleL.textAlignment = .center + titleL.font = UIFont.systemFont(ofSize: 18, weight: .medium) + titleL.jq_borderWidth = 1 + titleL.textColor = .black.withAlphaComponent(0.6) + titleL.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift b/DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift index e7217b3..c84a363 100644 --- a/DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift +++ b/DolphinEnglishLearnStudent/Moudle/Home/VC/HomeStudyCompleteVC.swift @@ -29,12 +29,12 @@ var viewModel:HomeListenFightViewModel! var studyScheduleModel:StudyScheduleModel! - required init(totalNum:Int? = nil,viewModel:HomeListenFightViewModel,studyScheduleModel:StudyScheduleModel){ + required init(totalNum:Int? = nil,viewModel:HomeListenFightViewModel,studyScheduleModel:StudyScheduleModel?){ super.init(nibName: nil, bundle: nil) // self.totalCoin = totalCoin self.totalNum = totalNum self.viewModel = viewModel - self.studyScheduleModel = studyScheduleModel +// self.studyScheduleModel = studyScheduleModel } required init?(coder: NSCoder) { @@ -133,7 +133,7 @@ let fightVC = HomeListenFightVC(listenType: .lesson2,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) fightVC.title = ListenType.lesson2.rawTitle fightVC.data = data - fightVC.studyScheduleModel = weakSelf.studyScheduleModel +// fightVC.studyScheduleModel = weakSelf.studyScheduleModel weakSelf.push(vc: fightVC) } }).disposed(by: disposeBag) @@ -146,7 +146,7 @@ let fightVC = HomeListenFightVC(listenType: .lesson3,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) fightVC.title = ListenType.lesson3.rawTitle fightVC.data = data - fightVC.studyScheduleModel = weakSelf.studyScheduleModel +// fightVC.studyScheduleModel = weakSelf.studyScheduleModel weakSelf.push(vc: fightVC) } }).disposed(by: disposeBag) @@ -158,7 +158,7 @@ let fightVC = HomeListenFightVC(listenType: .lesson4,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) fightVC.title = ListenType.lesson4.rawTitle fightVC.data = data - fightVC.studyScheduleModel = weakSelf.studyScheduleModel +// fightVC.studyScheduleModel = weakSelf.studyScheduleModel weakSelf.push(vc: fightVC) } }).disposed(by: disposeBag) @@ -170,7 +170,7 @@ let fightVC = HomeListenFightVC(listenType: .lesson5,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) fightVC.title = ListenType.lesson5.rawTitle fightVC.data = data - fightVC.studyScheduleModel = weakSelf.studyScheduleModel +// fightVC.studyScheduleModel = weakSelf.studyScheduleModel weakSelf.push(vc: fightVC) } }).disposed(by: disposeBag) -- Gitblit v1.7.1