fix
杨锴
2025-06-16 3fa53409f5132333ce6d83fff796e108ddd62090
fix
2个文件已删除
7个文件已添加
8个文件已修改
930 ■■■■■ 已修改文件
DolphinEnglishLearnStudent/Assets.xcassets/Icon/erji.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/erji.imageset/erji.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/erji.imageset/erji@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/Contents.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/Fill 1@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/home_arrow_up.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/home_arrow_up@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/logo_1.imageset/Contents.json 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/logo_1.imageset/Group@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/logo_1.imageset/Group@3x.png 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/HomeVC.xib 374 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.swift 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.xib 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenVC.swift 282 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.xib 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DolphinEnglishLearnStudent/Assets.xcassets/Icon/erji.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "filename" : "erji.png",
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "erji@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
DolphinEnglishLearnStudent/Assets.xcassets/Icon/erji.imageset/erji.png
DolphinEnglishLearnStudent/Assets.xcassets/Icon/erji.imageset/erji@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/Contents.json
@@ -1,12 +1,11 @@
{
  "images" : [
    {
      "filename" : "home_arrow_up.png",
      "filename" : "Fill 1@2x.png",
      "idiom" : "ipad",
      "scale" : "1x"
    },
    {
      "filename" : "home_arrow_up@2x.png",
      "idiom" : "ipad",
      "scale" : "2x"
    }
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/Fill 1@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/home_arrow_up.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/Icon/home_arrow_up.imageset/home_arrow_up@2x.png
Binary files differ
DolphinEnglishLearnStudent/Assets.xcassets/logo_1.imageset/Contents.json
New file
@@ -0,0 +1,22 @@
{
  "images" : [
    {
      "filename" : "Group@2x.png",
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "Group@3x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
DolphinEnglishLearnStudent/Assets.xcassets/logo_1.imageset/Group@2x.png
DolphinEnglishLearnStudent/Assets.xcassets/logo_1.imageset/Group@3x.png
DolphinEnglishLearnStudent/Moudle/Home/HomeVC.swift
@@ -10,63 +10,71 @@
class HomeVC: BaseVC {
//                @IBOutlet weak var view_menu: UIView!
                override func viewDidLoad() {
    @IBOutlet weak var view_yearTwo: TapBtn!
    @IBOutlet weak var view_yearThree: TapBtn!
    @IBOutlet weak var view_yearFour: TapBtn!
    override func viewDidLoad() {
        super.viewDidLoad()
                                Services.parentPage().subscribe(onNext: {data in
                                                if let imgStr = data.data{
                                                                let promptlaunchScreen = UserDefaults.standard.object(forKey: "promptlaunchScreen") as? String
                                                                if promptlaunchScreen != imgStr || promptlaunchScreen == nil{
                                                                                SDWebImageDownloader.shared.downloadImage(with: URL(string: imgStr)) { image, _, _, _ in
                                                                                                if let img = image{
                                                                                                                LaunchImageHelper.changeAllLaunchImageToLandscape(img)
                                                                                                                UserDefaults.standard.setValue(imgStr, forKey: "promptlaunchScreen")
                                                                                                                UserDefaults.standard.synchronize()
                                                                                                }
                                                                                }
                                                                }
                                                }
                                }).disposed(by: disposeBag)
        Services.parentPage().subscribe(onNext: {data in
            if let imgStr = data.data{
                let promptlaunchScreen = UserDefaults.standard.object(forKey: "promptlaunchScreen") as? String
                if promptlaunchScreen != imgStr || promptlaunchScreen == nil{
                    SDWebImageDownloader.shared.downloadImage(with: URL(string: imgStr)) { image, _, _, _ in
                        if let img = image{
                            LaunchImageHelper.changeAllLaunchImageToLandscape(img)
                            UserDefaults.standard.setValue(imgStr, forKey: "promptlaunchScreen")
                            UserDefaults.standard.synchronize()
                        }
                    }
                }
            }
        }).disposed(by: disposeBag)
                                Services.promptVoice().subscribe(onNext: {data in
                                                if let model = data.data{
                                                                let voice = UserDefaults.standard.object(forKey: "promptVoiceDate") as? String
                                                                if model.updateTime != voice || !VoicePlayer.hasPromoteVoice(){
                                                                                VoicePlayer.share().donwloadPromoteVoice(successVoice: model.correct, failVoice: model.error,updateTime: model.updateTime)
                                                                }
                                                }
                                }).disposed(by: disposeBag)
        Services.promptVoice().subscribe(onNext: {data in
            if let model = data.data{
                let voice = UserDefaults.standard.object(forKey: "promptVoiceDate") as? String
                if model.updateTime != voice || !VoicePlayer.hasPromoteVoice(){
                    VoicePlayer.share().donwloadPromoteVoice(successVoice: model.correct, failVoice: model.error,updateTime: model.updateTime)
                }
            }
        }).disposed(by: disposeBag)
    }
                override func viewDidLayoutSubviews() {
//                                view_menu.jq_gradientColor(colorArr: [UIColor(hexString: "#F9F5E0")!.cgColor,UIColor(hexString: "#EBF6FF")!.cgColor], cornerRadius: 8, startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 1), bounds: nil,locations: [NSNumber(value: 0.35)])
                }
    override func 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: nil,locations: [NSNumber(value: 0.35)])
                @IBAction func listenAction(_ sender: UIButton) {
        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: nil,locations: [NSNumber(value: 0.35)])
                                Services.goodRecommend().subscribe(onNext: { data in
                                                if (data.data?.count ?? 0) > 0{
                                                                AwardListView.show(items: data.data ?? []) { _ in
                                                                    // not todo
                                                                }closeClouse: { () in
                                                                                let listenMenuVC = HomeListenMenuVC()
                                                                                listenMenuVC.title = "第一年学习周目选择"
                                                                                self.push(vc: listenMenuVC)
                                                                }
                                                }else{
                                                                let listenMenuVC = HomeListenMenuVC()
                                                                listenMenuVC.title = "第一年学习周目选择"
                                                                self.push(vc: listenMenuVC)
                                                }
                                },onError: { error in
                                                let listenMenuVC = HomeListenMenuVC()
                                                listenMenuVC.title = "第一年学习周目选择"
                                                self.push(vc: listenMenuVC)
                                }).disposed(by: disposeBag)
        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: nil,locations: [NSNumber(value: 0.35)])
    }
    @IBAction func listenAction(_ sender: UIButton) {
        Services.goodRecommend().subscribe(onNext: { data in
            if (data.data?.count ?? 0) > 0{
                AwardListView.show(items: data.data ?? []) { _ in
                    // not todo
                }closeClouse: { () in
                    let listenMenuVC = HomeListenMenuVC()
                    listenMenuVC.title = "第一年学习周目选择"
                    self.push(vc: listenMenuVC)
                }
            }else{
                let listenMenuVC = HomeListenMenuVC()
                listenMenuVC.title = "第一年学习周目选择"
                self.push(vc: listenMenuVC)
            }
        },onError: { error in
            let listenMenuVC = HomeListenMenuVC()
            listenMenuVC.title = "第一年学习周目选择"
            self.push(vc: listenMenuVC)
        }).disposed(by: disposeBag)
                }
    }
}
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="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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">
    <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="23506"/>
        <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"/>
@@ -12,6 +12,9 @@
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HomeVC" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <connections>
                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
                <outlet property="view_yearFour" destination="LGI-6d-ayY" id="d61-cH-rFX"/>
                <outlet property="view_yearThree" destination="RNu-95-cei" id="eu2-MZ-fkn"/>
                <outlet property="view_yearTwo" destination="bRK-h8-9be" id="JHL-YF-7h3"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -20,25 +23,28 @@
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u25-QY-P0i">
                    <rect key="frame" x="0.0" y="0.0" width="299.5" height="820"/>
                    <rect key="frame" x="0.0" y="0.0" width="311.5" height="820"/>
                    <subviews>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="logo" translatesAutoresizingMaskIntoConstraints="NO" id="3du-Pw-IgI">
                            <rect key="frame" x="77.5" y="40" width="144" height="136"/>
                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="logo_1" translatesAutoresizingMaskIntoConstraints="NO" id="3du-Pw-IgI">
                            <rect key="frame" x="0.0" y="0.0" width="311.5" height="162"/>
                            <constraints>
                                <constraint firstAttribute="width" secondItem="3du-Pw-IgI" secondAttribute="height" multiplier="1:0.52" id="CuF-Fo-rfx"/>
                            </constraints>
                        </imageView>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="欢迎使用哆能智学!" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" adjustsFontForContentSizeCategory="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nUx-UB-L4X">
                            <rect key="frame" x="18" y="193" width="263.5" height="33.5"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="28"/>
                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <rect key="frame" x="18" y="184" width="275.5" height="37"/>
                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="31"/>
                            <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                            <nil key="highlightedColor"/>
                        </label>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oad-Jg-rwh">
                            <rect key="frame" x="18" y="238.5" width="192.5" height="50.5"/>
                            <rect key="frame" x="18" y="233" width="197.5" height="55"/>
                            <attributedString key="attributedText">
                                <fragment content="孩子自己就能学好的">
                                    <attributes>
                                        <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                        <font key="NSFont" metaFont="system" size="21"/>
                                        <font key="NSOriginalFont" metaFont="system" size="21"/>
                                        <color key="NSColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                        <font key="NSFont" metaFont="system" size="23"/>
                                        <font key="NSOriginalFont" metaFont="system" size="23"/>
                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
                                    </attributes>
                                </fragment>
@@ -47,16 +53,16 @@
Cg
</string>
                                    <attributes>
                                        <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                        <font key="NSFont" metaFont="system" size="21"/>
                                        <color key="NSColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                        <font key="NSFont" metaFont="system" size="23"/>
                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
                                    </attributes>
                                </fragment>
                                <fragment content="英语课程体系">
                                    <attributes>
                                        <color key="NSColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                        <font key="NSFont" metaFont="system" size="21"/>
                                        <font key="NSOriginalFont" metaFont="system" size="21"/>
                                        <color key="NSColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                        <font key="NSFont" metaFont="system" size="23"/>
                                        <font key="NSOriginalFont" metaFont="system" size="23"/>
                                        <paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0" allowsDefaultTighteningForTruncation="NO"/>
                                    </attributes>
                                </fragment>
@@ -66,10 +72,12 @@
                    </subviews>
                    <color key="backgroundColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="width" secondItem="u25-QY-P0i" secondAttribute="height" multiplier="0.365:1" id="1p9-mr-7Cm"/>
                        <constraint firstAttribute="trailing" secondItem="3du-Pw-IgI" secondAttribute="trailing" id="0oW-Lc-fRc"/>
                        <constraint firstItem="oad-Jg-rwh" firstAttribute="top" secondItem="nUx-UB-L4X" secondAttribute="bottom" constant="12" id="4gV-bW-UaL"/>
                        <constraint firstItem="3du-Pw-IgI" firstAttribute="top" secondItem="u25-QY-P0i" secondAttribute="topMargin" constant="8" id="bed-Zd-FF0"/>
                        <constraint firstItem="nUx-UB-L4X" firstAttribute="top" secondItem="3du-Pw-IgI" secondAttribute="bottom" constant="17" id="fRe-0s-Fyh"/>
                        <constraint firstItem="3du-Pw-IgI" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="leading" id="CJq-Fu-Ptu"/>
                        <constraint firstAttribute="width" secondItem="u25-QY-P0i" secondAttribute="height" multiplier="0.38:1" id="NAp-xP-nYJ"/>
                        <constraint firstItem="3du-Pw-IgI" firstAttribute="top" secondItem="u25-QY-P0i" secondAttribute="top" id="e8e-3z-kX1"/>
                        <constraint firstItem="nUx-UB-L4X" firstAttribute="top" secondItem="3du-Pw-IgI" secondAttribute="bottom" constant="22" id="fRe-0s-Fyh"/>
                        <constraint firstItem="3du-Pw-IgI" firstAttribute="centerX" secondItem="u25-QY-P0i" secondAttribute="centerX" id="jBE-CO-PUA"/>
                        <constraint firstItem="oad-Jg-rwh" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="leading" constant="18" id="tWV-v1-fVv"/>
                        <constraint firstAttribute="trailing" secondItem="nUx-UB-L4X" secondAttribute="trailing" constant="18" id="uua-ac-KNt"/>
@@ -77,100 +85,16 @@
                    </constraints>
                </view>
                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="8a7-s7-2fd">
                    <rect key="frame" x="332.5" y="199" width="380" height="88"/>
                    <rect key="frame" x="449.5" y="24" width="604.5" height="660"/>
                    <subviews>
                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A0m-iE-WEq">
                            <rect key="frame" x="0.0" y="0.0" width="380" height="59"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="uJm-Us-sBO">
                                    <rect key="frame" x="33" y="11" width="20" height="37"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="uJm-Us-sBO" firstAttribute="leading" secondItem="A0m-iE-WEq" secondAttribute="leading" constant="33" id="0xE-kt-Yeh"/>
                                <constraint firstAttribute="height" constant="59" id="JuD-so-WAc"/>
                                <constraint firstItem="uJm-Us-sBO" firstAttribute="centerY" secondItem="A0m-iE-WEq" secondAttribute="centerY" id="MoR-NR-35e"/>
                            </constraints>
                        </view>
                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vB7-Gs-18h">
                            <rect key="frame" x="0.0" y="0.0" width="380" height="88"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EhG-4I-wv7">
                                    <rect key="frame" x="0.0" y="0.0" width="99" height="88"/>
                                    <subviews>
                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="第二年" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9yR-aO-6u5">
                                            <rect key="frame" x="0.0" y="52" width="99" height="22"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="22" id="pNn-aw-KDe"/>
                                            </constraints>
                                            <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_read" translatesAutoresizingMaskIntoConstraints="NO" id="vJh-51-3CD">
                                            <rect key="frame" x="31" y="13" width="37" height="37"/>
                                        </imageView>
                                    </subviews>
                                    <color key="backgroundColor" red="0.61960784313725492" green="0.54117647058823526" blue="0.85882352941176465" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                    <constraints>
                                        <constraint firstAttribute="trailing" secondItem="9yR-aO-6u5" secondAttribute="trailing" id="BPZ-TF-juS"/>
                                        <constraint firstAttribute="height" constant="88" id="EBl-vD-Rry"/>
                                        <constraint firstAttribute="width" constant="99" id="FPs-bT-2XV"/>
                                        <constraint firstItem="9yR-aO-6u5" firstAttribute="leading" secondItem="EhG-4I-wv7" secondAttribute="leading" id="MrA-Ic-bYP"/>
                                        <constraint firstItem="vJh-51-3CD" firstAttribute="top" secondItem="EhG-4I-wv7" secondAttribute="top" constant="13" id="OWt-Bu-tCJ"/>
                                        <constraint firstItem="vJh-51-3CD" firstAttribute="centerX" secondItem="9yR-aO-6u5" secondAttribute="centerX" id="USs-dV-4Ye"/>
                                        <constraint firstAttribute="bottom" secondItem="9yR-aO-6u5" secondAttribute="bottom" constant="14" id="mSq-jc-zkL"/>
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="认读" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NOj-Vj-QlF">
                                    <rect key="frame" x="99" y="0.0" width="281" height="88"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                    <nil key="textColor"/>
                                    <nil key="highlightedColor"/>
                                </label>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="trailing" secondItem="NOj-Vj-QlF" secondAttribute="trailing" id="7wF-XH-l6X"/>
                                <constraint firstItem="EhG-4I-wv7" firstAttribute="leading" secondItem="vB7-Gs-18h" secondAttribute="leading" id="Ena-XQ-Eb9"/>
                                <constraint firstAttribute="width" constant="380" id="Spe-Jo-zr8"/>
                                <constraint firstItem="NOj-Vj-QlF" firstAttribute="top" secondItem="vB7-Gs-18h" secondAttribute="top" id="Ta7-te-qDu"/>
                                <constraint firstItem="EhG-4I-wv7" firstAttribute="top" secondItem="vB7-Gs-18h" secondAttribute="top" id="U5D-Qx-VKe"/>
                                <constraint firstAttribute="bottom" secondItem="NOj-Vj-QlF" secondAttribute="bottom" id="bbH-QH-G5Q"/>
                                <constraint firstItem="NOj-Vj-QlF" firstAttribute="leading" secondItem="EhG-4I-wv7" secondAttribute="trailing" id="h6u-ko-LpA"/>
                                <constraint firstAttribute="bottom" secondItem="EhG-4I-wv7" secondAttribute="bottom" id="wIZ-VU-t3V"/>
                                <constraint firstAttribute="height" constant="88" id="wtU-jm-ALX"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="14"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </view>
                        <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dtu-QM-cC6">
                            <rect key="frame" x="0.0" y="0.0" width="380" height="59"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="8gt-hY-WEX">
                                    <rect key="frame" x="33" y="11" width="20" height="37"/>
                                </imageView>
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstItem="8gt-hY-WEX" firstAttribute="centerY" secondItem="Dtu-QM-cC6" secondAttribute="centerY" id="Mqh-tf-Wo1"/>
                                <constraint firstItem="8gt-hY-WEX" firstAttribute="leading" secondItem="Dtu-QM-cC6" secondAttribute="leading" constant="33" id="bkS-IH-Ia7"/>
                                <constraint firstAttribute="height" constant="59" id="gkV-nf-bnN"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vDp-Gp-qMt" customClass="TapBtn" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="0.0" width="380" height="88"/>
                            <rect key="frame" x="0.0" y="0.0" width="604.5" height="96"/>
                            <subviews>
                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="638-4h-RmO">
                                    <rect key="frame" x="0.0" y="0.0" width="99" height="88"/>
                                    <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="50" width="99" height="22"/>
                                            <rect key="frame" x="0.0" y="58" width="99" height="22"/>
                                            <constraints>
                                                <constraint firstAttribute="height" constant="22" id="0E8-lU-VAm"/>
                                            </constraints>
@@ -186,15 +110,16 @@
                                    <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 firstAttribute="height" constant="88" id="Ez7-4n-UUU"/>
                                        <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"/>
                                    </constraints>
                                </view>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="听" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rYc-7O-AJr">
                                    <rect key="frame" x="99" y="0.0" width="281" height="88"/>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rYc-7O-AJr">
                                    <rect key="frame" x="120" y="19.5" width="484.5" height="57.5"/>
                                    <string key="text">听 - 听懂英语声音世界,建立声音认知逻
听音有物,见物有音。</string>
                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="24"/>
                                    <nil key="textColor"/>
                                    <nil key="highlightedColor"/>
@@ -202,15 +127,13 @@
                            </subviews>
                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                            <constraints>
                                <constraint firstAttribute="bottom" secondItem="rYc-7O-AJr" secondAttribute="bottom" id="1Cy-Uo-TQl"/>
                                <constraint firstItem="638-4h-RmO" firstAttribute="leading" secondItem="vDp-Gp-qMt" secondAttribute="leading" id="906-Em-QM1"/>
                                <constraint firstAttribute="width" constant="380" id="Fci-Un-Bb0"/>
                                <constraint firstItem="rYc-7O-AJr" firstAttribute="top" secondItem="vDp-Gp-qMt" secondAttribute="top" id="IuS-gO-xrq"/>
                                <constraint firstAttribute="trailing" secondItem="rYc-7O-AJr" secondAttribute="trailing" id="KQJ-pj-kUy"/>
                                <constraint firstAttribute="height" constant="88" id="XI2-on-coS"/>
                                <constraint firstAttribute="height" constant="96" id="XI2-on-coS"/>
                                <constraint firstItem="638-4h-RmO" firstAttribute="top" secondItem="vDp-Gp-qMt" secondAttribute="top" id="ZWW-ad-FCa"/>
                                <constraint firstItem="rYc-7O-AJr" firstAttribute="centerY" secondItem="vDp-Gp-qMt" secondAttribute="centerY" id="egU-j0-Zyg"/>
                                <constraint firstAttribute="bottom" secondItem="638-4h-RmO" secondAttribute="bottom" id="pMS-Rh-ZiE"/>
                                <constraint firstItem="rYc-7O-AJr" firstAttribute="leading" secondItem="638-4h-RmO" secondAttribute="trailing" id="zhf-yy-Qje"/>
                                <constraint firstItem="rYc-7O-AJr" firstAttribute="leading" secondItem="638-4h-RmO" secondAttribute="trailing" constant="21" id="zhf-yy-Qje"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
@@ -222,25 +145,215 @@
                                <action selector="listenAction:" destination="-1" eventType="touchUpInside" id="MbU-jm-Qjr"/>
                            </connections>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A0m-iE-WEq">
                            <rect key="frame" x="0.0" y="96" width="604.5" height="92"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="uJm-Us-sBO">
                                    <rect key="frame" x="33" y="20" width="20" height="37"/>
                                </imageView>
                            </subviews>
                            <constraints>
                                <constraint firstItem="uJm-Us-sBO" firstAttribute="leading" secondItem="A0m-iE-WEq" secondAttribute="leading" constant="33" id="0xE-kt-Yeh"/>
                                <constraint firstAttribute="height" constant="92" id="JuD-so-WAc"/>
                                <constraint firstItem="uJm-Us-sBO" firstAttribute="top" secondItem="A0m-iE-WEq" secondAttribute="top" constant="20" id="dWW-QK-5I4"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bRK-h8-9be" customClass="TapBtn" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="188" width="604.5" height="96"/>
                            <subviews>
                                <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>
                                            <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 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="认读&gt;拼读&gt;阅读 - 建立文字认知逻辑。" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E6l-m4-aFf">
                                    <rect key="frame" x="120" y="33.5" width="484.5" 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"/>
                            <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"/>
                                <constraint firstItem="E6l-m4-aFf" firstAttribute="leading" secondItem="Aru-TP-eo5" secondAttribute="trailing" constant="21" id="OUb-Wa-p5r"/>
                                <constraint firstItem="Aru-TP-eo5" firstAttribute="leading" secondItem="bRK-h8-9be" secondAttribute="leading" id="Ppx-6L-iUN"/>
                                <constraint firstItem="E6l-m4-aFf" firstAttribute="centerY" secondItem="bRK-h8-9be" secondAttribute="centerY" id="U2C-h4-Rm0"/>
                                <constraint firstAttribute="height" constant="96" id="VLD-Q6-juU"/>
                                <constraint firstAttribute="trailing" secondItem="E6l-m4-aFf" secondAttribute="trailing" id="yEv-S7-2VG"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="14"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IhT-WS-1W6">
                            <rect key="frame" x="0.0" y="284" width="604.5" height="92"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="EkN-Kd-dIo">
                                    <rect key="frame" x="33" y="20" width="20" height="37"/>
                                </imageView>
                            </subviews>
                            <constraints>
                                <constraint firstItem="EkN-Kd-dIo" firstAttribute="leading" secondItem="IhT-WS-1W6" secondAttribute="leading" constant="33" id="3Sf-ue-EBq"/>
                                <constraint firstItem="EkN-Kd-dIo" firstAttribute="top" secondItem="IhT-WS-1W6" secondAttribute="top" constant="20" id="VNN-8i-5TT"/>
                                <constraint firstAttribute="height" constant="92" id="a1S-nM-PTQ"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RNu-95-cei" customClass="TapBtn" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="376" width="604.5" height="96"/>
                            <subviews>
                                <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>
                                            <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 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="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fmd-pO-bSH">
                                    <rect key="frame" x="120" y="33.5" width="484.5" 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"/>
                            <constraints>
                                <constraint firstAttribute="bottom" secondItem="rof-Bc-DBt" secondAttribute="bottom" id="COZ-ac-5bK"/>
                                <constraint firstAttribute="height" constant="96" id="OfW-EV-TmL"/>
                                <constraint firstItem="rof-Bc-DBt" firstAttribute="top" secondItem="RNu-95-cei" secondAttribute="top" id="Rk0-Vt-x3c"/>
                                <constraint firstItem="Fmd-pO-bSH" firstAttribute="centerY" secondItem="RNu-95-cei" secondAttribute="centerY" id="bCS-cd-gdb"/>
                                <constraint firstItem="Fmd-pO-bSH" firstAttribute="leading" secondItem="rof-Bc-DBt" secondAttribute="trailing" constant="21" id="cBU-uf-vCT"/>
                                <constraint firstAttribute="trailing" secondItem="Fmd-pO-bSH" secondAttribute="trailing" id="ebX-vd-Cs6"/>
                                <constraint firstItem="rof-Bc-DBt" firstAttribute="leading" secondItem="RNu-95-cei" secondAttribute="leading" id="saL-pO-xgf"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="14"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BDR-5j-kah">
                            <rect key="frame" x="0.0" y="472" width="604.5" height="92"/>
                            <subviews>
                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="home_arrow_up" translatesAutoresizingMaskIntoConstraints="NO" id="xve-gO-8dX">
                                    <rect key="frame" x="33" y="20" width="20" height="37"/>
                                </imageView>
                            </subviews>
                            <constraints>
                                <constraint firstItem="xve-gO-8dX" firstAttribute="leading" secondItem="BDR-5j-kah" secondAttribute="leading" constant="33" id="CQh-cl-fbj"/>
                                <constraint firstAttribute="height" constant="92" id="FGb-PG-yjX"/>
                                <constraint firstItem="xve-gO-8dX" firstAttribute="top" secondItem="BDR-5j-kah" secondAttribute="top" constant="20" id="iZc-Yj-Dkv"/>
                            </constraints>
                        </view>
                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LGI-6d-ayY" customClass="TapBtn" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
                            <rect key="frame" x="0.0" y="564" width="604.5" height="96"/>
                            <subviews>
                                <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>
                                            <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 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="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5z7-Xs-obp">
                                    <rect key="frame" x="120" y="33.5" width="484.5" 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"/>
                            <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"/>
                                <constraint firstAttribute="trailing" secondItem="5z7-Xs-obp" secondAttribute="trailing" id="OTj-LN-QKI"/>
                                <constraint firstItem="vQZ-vC-WZM" firstAttribute="leading" secondItem="LGI-6d-ayY" secondAttribute="leading" id="U8F-XO-oU1"/>
                                <constraint firstItem="5z7-Xs-obp" firstAttribute="centerY" secondItem="LGI-6d-ayY" secondAttribute="centerY" id="cEr-Ro-eSl"/>
                                <constraint firstAttribute="bottom" secondItem="vQZ-vC-WZM" secondAttribute="bottom" id="mQG-1v-MPM"/>
                                <constraint firstItem="5z7-Xs-obp" firstAttribute="leading" secondItem="vQZ-vC-WZM" secondAttribute="trailing" constant="21" id="oUi-z5-S96"/>
                            </constraints>
                            <userDefinedRuntimeAttributes>
                                <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
                                <userDefinedRuntimeAttribute type="number" keyPath="ld_cornerRadiusXIB">
                                    <real key="value" value="14"/>
                                </userDefinedRuntimeAttribute>
                            </userDefinedRuntimeAttributes>
                        </view>
                    </subviews>
                </stackView>
                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="placeH" translatesAutoresizingMaskIntoConstraints="NO" id="dB6-vc-74T">
                    <rect key="frame" x="864" y="442" width="254" height="358"/>
                    <constraints>
                        <constraint firstAttribute="width" constant="254" id="GPi-Rj-Pet"/>
                        <constraint firstAttribute="height" constant="358" id="Wfv-ly-SSv"/>
                    </constraints>
                </imageView>
            </subviews>
            <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
            <color key="backgroundColor" red="0.76470588235294112" green="0.74901960784313726" blue="0.70196078431372544" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
            <constraints>
                <constraint firstItem="8a7-s7-2fd" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" constant="175" id="4SC-Gm-a5y"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="dB6-vc-74T" secondAttribute="trailing" constant="62" id="4h9-Dx-RHg"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="bottom" secondItem="dB6-vc-74T" secondAttribute="bottom" id="5rR-7n-uKm"/>
                <constraint firstItem="8a7-s7-2fd" firstAttribute="top" secondItem="fnl-2z-Ty3" secondAttribute="top" id="4SC-Gm-a5y"/>
                <constraint firstAttribute="bottom" secondItem="u25-QY-P0i" secondAttribute="bottom" id="CfI-2x-pVb"/>
                <constraint firstItem="u25-QY-P0i" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="QEu-6j-zme"/>
                <constraint firstItem="8a7-s7-2fd" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="trailing" constant="33" id="lge-cR-TPq"/>
                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="8a7-s7-2fd" secondAttribute="trailing" constant="126" id="ZuT-nV-nAJ"/>
                <constraint firstItem="8a7-s7-2fd" firstAttribute="leading" secondItem="u25-QY-P0i" secondAttribute="trailing" constant="138" id="lge-cR-TPq"/>
                <constraint firstItem="u25-QY-P0i" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="snI-gI-0vp"/>
            </constraints>
            <point key="canvasLocation" x="44.745762711864408" y="19.756097560975608"/>
@@ -248,10 +361,11 @@
    </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="logo" width="144" height="136"/>
        <image name="placeH" width="178" height="250"/>
        <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"/>
        </systemColor>
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.swift
@@ -9,35 +9,35 @@
import JQTools
class HomeListen_process_TCell: UITableViewCell {
                @IBOutlet weak var label_currentWeek: UILabel!
                @IBOutlet weak var label_completeProgress: UILabel!
                @IBOutlet weak var label_info: UILabel!
                @IBOutlet weak var cons_progress: NSLayoutConstraint!
                var studyScheduleModel:StudyScheduleModel?{
                                didSet{
                                                if let m = studyScheduleModel{
//                                                                label_currentWeek.text = "当前周目:\(studyScheduleModel?.week.jq_cn ?? "")周目"
    @IBOutlet weak var label_currentWeek: UILabel!
    @IBOutlet weak var label_completeProgress: UILabel!
    @IBOutlet weak var label_info: UILabel!
    @IBOutlet weak var cons_progress: NSLayoutConstraint!
                                                                label_info.attributedText     = AttributedStringbuilder.build().add(string: "学习总时长:", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                                                .add(string: "\(m.totalStudy)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!)
                                                                                .add(string: "|今日学习", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                                                .add(string: "\(m.todayStudy)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!).mutableAttributedString
                                                                cons_progress.constant = ((JQ_ScreenW - 234 * 2 - 44) / 100) * Double(m.computeSchedule)
                                                                label_completeProgress.text = "已完成:\(m.computeSchedule)%"
                                                }
                                }
                }
    var studyScheduleModel:StudyScheduleModel?{
        didSet{
            if let m = studyScheduleModel{
                //                                                                label_currentWeek.text = "当前周目:\(studyScheduleModel?.week.jq_cn ?? "")周目"
                label_info.attributedText     = AttributedStringbuilder.build().add(string: "学习总时长:", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                    .add(string: "\(m.totalStudy)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!)
                    .add(string: "|今日学习", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                    .add(string: "\(m.todayStudy)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!).mutableAttributedString
                cons_progress.constant = ((JQ_ScreenW - 234 * 2 - 44) / 100) * Double(m.computeSchedule)
                label_completeProgress.text = "已完成:\(m.computeSchedule)%"
            }
        }
    }
    override func awakeFromNib() {
        super.awakeFromNib()
                                backgroundColor = .clear
                                selectionStyle = .none
        backgroundColor = .clear
        selectionStyle = .none
                                label_info.attributedText     = AttributedStringbuilder.build().add(string: "学习总时长:", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                .add(string: "\(0)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!)
                                                .add(string: "|今日学习", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
                                                .add(string: "\(0)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!).mutableAttributedString
        label_info.attributedText     = AttributedStringbuilder.build().add(string: "学习总时长:", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
            .add(string: "\(0)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!)
            .add(string: "|今日学习", withFont: .systemFont(ofSize: 16), withColor: UIColor(hexString: "#2B3648")!)
            .add(string: "\(0)小时", withFont: .systemFont(ofSize: 16, weight: .medium), withColor: UIColor(hexString: "#2B3648")!).mutableAttributedString
    }
}
DolphinEnglishLearnStudent/Moudle/Home/Listen/TCell/HomeListen_process_TCell.xib
@@ -1,55 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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">
    <device id="ipad10_9rounded" orientation="portrait" layout="fullscreen" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
        <capability name="System colors in document resources" minToolsVersion="11.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" reuseIdentifier="_HomeListen_process_TCell" rowHeight="202" id="KGk-i7-Jjw" customClass="HomeListen_process_TCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="541" height="202"/>
        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="_HomeListen_process_TCell" rowHeight="115" id="KGk-i7-Jjw" customClass="HomeListen_process_TCell" customModule="DolphinEnglishLearnStudent" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="974" height="115"/>
            <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="541" height="202"/>
                <rect key="frame" x="0.0" y="0.0" width="974" height="115"/>
                <autoresizingMask key="autoresizingMask"/>
                <subviews>
                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RXp-OG-LEf">
                        <rect key="frame" x="0.0" y="9.5" width="541" height="183"/>
                        <rect key="frame" x="0.0" y="9.5" width="974" height="96"/>
                        <subviews>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="当前周目:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0OR-m9-gOV">
                                <rect key="frame" x="22" y="17" width="96.5" height="29"/>
                                <rect key="frame" x="22" y="22" width="99" height="29"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="29" id="RHk-nY-HVy"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="21"/>
                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="23"/>
                                <color key="textColor" red="0.16862745098039217" green="0.21176470588235294" blue="0.28235294117647058" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已完成:0%" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tZm-jl-aPX">
                                <rect key="frame" x="427.5" y="20.5" width="101.5" height="22"/>
                                <rect key="frame" x="862" y="25.5" width="100" height="22"/>
                                <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                                <color key="textColor" red="0.96078431372549022" green="0.47450980392156861" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学习总时长:0小时|今日学习:0小时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4vp-cM-Wt2">
                                <rect key="frame" x="23" y="58" width="495" height="22"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="22" id="Pn7-ug-yZr"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5YC-oK-utb">
                                <rect key="frame" x="22" y="104" width="0.0" height="6"/>
                                <rect key="frame" x="22" y="67" width="0.0" height="6"/>
                                <color key="backgroundColor" red="0.25490196078431371" green="0.63529411764705879" blue="0.92156862745098034" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <constraints>
                                    <constraint firstAttribute="width" id="7Ub-3s-w3Q"/>
                                    <constraint firstAttribute="height" constant="6" id="Q4v-Ro-Ym2"/>
                                    <constraint firstAttribute="width" id="Zzl-QC-ej8"/>
                                </constraints>
                                <userDefinedRuntimeAttributes>
                                    <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
@@ -58,18 +49,26 @@
                                    </userDefinedRuntimeAttribute>
                                </userDefinedRuntimeAttributes>
                            </view>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学习总时长:0小时|今日学习:0小时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4vp-cM-Wt2">
                                <rect key="frame" x="172" y="25.5" width="278.5" height="22"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="22" id="Pn7-ug-yZr"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                <nil key="textColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="5YC-oK-utb" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="22" id="4MR-IW-urq"/>
                            <constraint firstItem="4vp-cM-Wt2" firstAttribute="top" secondItem="0OR-m9-gOV" secondAttribute="bottom" constant="12" id="4Zn-aZ-6B5"/>
                            <constraint firstItem="tZm-jl-aPX" firstAttribute="centerY" secondItem="0OR-m9-gOV" secondAttribute="centerY" id="5Aq-B8-hHc"/>
                            <constraint firstItem="5YC-oK-utb" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="22" id="6g6-Zr-YhH"/>
                            <constraint firstAttribute="trailing" secondItem="tZm-jl-aPX" secondAttribute="trailing" constant="12" id="9TX-lG-lmM"/>
                            <constraint firstItem="5YC-oK-utb" firstAttribute="top" secondItem="4vp-cM-Wt2" secondAttribute="bottom" constant="24" id="CrR-Tw-f7R"/>
                            <constraint firstItem="4vp-cM-Wt2" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="23" id="NVz-na-8L9"/>
                            <constraint firstItem="0OR-m9-gOV" firstAttribute="top" secondItem="RXp-OG-LEf" secondAttribute="top" constant="17" id="NpO-xF-QHk"/>
                            <constraint firstItem="4vp-cM-Wt2" firstAttribute="leading" secondItem="0OR-m9-gOV" secondAttribute="trailing" constant="51" id="KPB-tC-fCW"/>
                            <constraint firstItem="4vp-cM-Wt2" firstAttribute="centerY" secondItem="0OR-m9-gOV" secondAttribute="centerY" id="Ncl-Yv-uTv"/>
                            <constraint firstItem="0OR-m9-gOV" firstAttribute="top" secondItem="RXp-OG-LEf" secondAttribute="top" constant="22" id="NpO-xF-QHk"/>
                            <constraint firstItem="0OR-m9-gOV" firstAttribute="leading" secondItem="RXp-OG-LEf" secondAttribute="leading" constant="22" id="ZAU-qP-L58"/>
                            <constraint firstAttribute="trailing" secondItem="4vp-cM-Wt2" secondAttribute="trailing" constant="23" id="zdS-VW-orc"/>
                            <constraint firstItem="5YC-oK-utb" firstAttribute="top" secondItem="0OR-m9-gOV" secondAttribute="bottom" constant="16" id="wlR-kd-m3e"/>
                        </constraints>
                        <userDefinedRuntimeAttributes>
                            <userDefinedRuntimeAttribute type="boolean" keyPath="ld_maskToBoundsXIB" value="YES"/>
@@ -87,12 +86,12 @@
                </constraints>
            </tableViewCellContentView>
            <connections>
                <outlet property="cons_progress" destination="Zzl-QC-ej8" id="5nX-hJ-eUu"/>
                <outlet property="cons_progress" destination="7Ub-3s-w3Q" id="A0m-l2-WYA"/>
                <outlet property="label_completeProgress" destination="tZm-jl-aPX" id="Uqr-wy-HOB"/>
                <outlet property="label_currentWeek" destination="0OR-m9-gOV" id="fZk-hC-CLI"/>
                <outlet property="label_info" destination="4vp-cM-Wt2" id="mql-4J-5Xf"/>
            </connections>
            <point key="canvasLocation" x="168.65853658536585" y="60"/>
            <point key="canvasLocation" x="327.07317073170731" y="37.881355932203391"/>
        </tableViewCell>
    </objects>
    <resources>
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenSubVC.swift
@@ -61,6 +61,8 @@
extension HomeListenSubVC:UITableViewDelegate{
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if (page + 1) >  (studyScheduleModel?.day ?? 0){return}
        if page <= 4 && indexPath.section == 0{return}
        let day = page + 1
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenVC.swift
@@ -11,177 +11,177 @@
class HomeListenVC: BaseVC {
                //限制后面的点击:天数(1开始)
                private var limitDay = 1
                private var quarter:Int!
                private var week:Int!
                private var studyScheduleModel:StudyScheduleModel!
    //限制后面的点击:天数(1开始)
    private var limitDay = 1
    private var quarter:Int!
    private var week:Int!
    private var studyScheduleModel:StudyScheduleModel!
                private lazy var menu:SPPageMenu = {
                                let menu = SPPageMenu(frame: .zero, trackerStyle: .line)
                                menu.itemTitleFont = UIFont(name: "Impact", size: 18) ?? .systemFont(ofSize: 18, weight: .medium)
                                menu.setItems(["Day1","Day2","Day3","Day4","Day5","自主游戏","听故事"], selectedItemIndex: 0)
                                menu.selectedItemTitleColor = UIColor(hexStr: "#41A2EB")
                                menu.unSelectedItemTitleColor = UIColor.black.withAlphaComponent(0.71)
                                menu.trackerWidth = 22
                                menu.setTrackerHeight(6, cornerRadius: 3)
                                menu.trackerFollowingMode = .half
                                menu.tracker.image = UIImage.jq_image(with: UIColor(hexStr: "#41A2EB"), size: CGSize(width: 1, height: 1), alpha: 1)
                                menu.permutationWay = .notScrollAdaptContent
                                menu.dividingLineHeight = 0.001
                                return menu
                }()
    private lazy var menu:SPPageMenu = {
        let menu = SPPageMenu(frame: .zero, trackerStyle: .line)
        menu.itemTitleFont = UIFont(name: "Impact", size: 18) ?? .systemFont(ofSize: 18, weight: .medium)
        menu.setItems(["Day1","Day2","Day3","Day4","Day5","自主游戏","听故事"], selectedItemIndex: 0)
        menu.selectedItemTitleColor = UIColor(hexStr: "#41A2EB")
        menu.unSelectedItemTitleColor = UIColor.black.withAlphaComponent(0.71)
        menu.trackerWidth = 22
        menu.setTrackerHeight(6, cornerRadius: 3)
        menu.trackerFollowingMode = .half
        menu.tracker.image = UIImage.jq_image(with: UIColor(hexStr: "#41A2EB"), size: CGSize(width: 1, height: 1), alpha: 1)
        menu.permutationWay = .notScrollAdaptContent
        menu.dividingLineHeight = 0.001
        return menu
    }()
                private lazy var pageVC:FFPageViewController = {
                                let vc = FFPageViewController()
                                vc.scrollview.isScrollEnabled = false
                                return vc
                }()
    private lazy var pageVC:FFPageViewController = {
        let vc = FFPageViewController()
        vc.scrollview.isScrollEnabled = false
        return vc
    }()
                required init(quarter:Int,week:Int,studyScheduleModel:StudyScheduleModel) {
                                super.init(nibName: nil, bundle: nil)
                                self.quarter = quarter
                                self.week = week
                                self.studyScheduleModel = studyScheduleModel
                }
                required init?(coder: NSCoder) {
                                fatalError("init(coder:) has not been implemented")
                }
                override func viewDidLoad() {
                                super.viewDidLoad()
    required init(quarter:Int,week:Int,studyScheduleModel:StudyScheduleModel) {
        super.init(nibName: nil, bundle: nil)
        self.quarter = quarter
        self.week = week
        self.studyScheduleModel = studyScheduleModel
    }
                                refreshDay()
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
                                Services.onlineDuration().subscribe(onNext: { data in
                                                if let time = data.data{
                                                                sceneDelegate?.globalTimeval = time
                                                }
                                }).disposed(by: disposeBag)
                }
    override func viewDidLoad() {
        super.viewDidLoad()
                private func refreshDay(){
                                self.limitDay = studyScheduleModel.day
        refreshDay()
                                let total = studyScheduleModel.pair + studyScheduleModel.induction + studyScheduleModel.listen + studyScheduleModel.look + studyScheduleModel.answer
        Services.onlineDuration().subscribe(onNext: { data in
            if let time = data.data{
                sceneDelegate?.globalTimeval = time
            }
        }).disposed(by: disposeBag)
    }
                                if self.limitDay == 5 && total == 500 {
                                                self.limitDay = 6
                                }
    private func refreshDay(){
        self.limitDay = studyScheduleModel.day
                                for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
                                                if let btn = titleL as?  UIButton{
                                                                if index == 6{ //听故事,单独使用
                                                                                btn.setTitleColor(.black, for: .normal)
                                                                                self.menu.setEnabled(true, forItemAt: UInt(index))
                                                                }else{
                                                                                btn.setTitleColor(index < (self.limitDay) ? .black:.black.withAlphaComponent(0.33), for: .normal)
                                                                                self.menu.setEnabled(index < (self.limitDay), forItemAt: UInt(index))
                                                                }
                                                }
                                }
                                self.pageVC.reloadData()
        let total = studyScheduleModel.pair + studyScheduleModel.induction + studyScheduleModel.listen + studyScheduleModel.look + studyScheduleModel.answer
        #if !DEBUG
                                if limitDay == 6{
                                                self.pageVC.scroll(toPage: 4, animation: true)
                                }else{
                                                self.pageVC.scroll(toPage: self.limitDay - 1, animation: true)
                                }
        #endif
                }
        if self.limitDay == 5 && total == 500 {
            self.limitDay = 6
        }
                override func setUI() {
                                super.setUI()
        for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
            if let btn = titleL as?  UIButton{
                if index == 6{ //听故事,单独使用
                    btn.setTitleColor(.black, for: .normal)
                    self.menu.setEnabled(true, forItemAt: UInt(index))
                }else{
                    btn.setTitleColor(index < (self.limitDay) ? .black:.black.withAlphaComponent(0.33), for: .normal)
                    self.menu.setEnabled(index < (self.limitDay), forItemAt: UInt(index))
                }
            }
        }
        self.pageVC.reloadData()
                                //解决返回按钮区域过小,点击不灵敏
                                title = "            "
#if !DEBUG
        if limitDay == 6{
            self.pageVC.scroll(toPage: 4, animation: true)
        }else{
            self.pageVC.scroll(toPage: self.limitDay - 1, animation: true)
        }
#endif
    }
                                let topMenuView = UIView()
                                topMenuView.backgroundColor = .white
                                topMenuView.jq_cornerRadius = 8
                                view.addSubview(topMenuView)
                                topMenuView.snp.makeConstraints { make in
                                                make.top.equalTo(self.view.safeAreaLayoutGuide).offset(9)
                                                make.left.equalTo(234)
                                                make.right.equalTo(-234)
                                                make.height.equalTo(59)
                                }
    override func setUI() {
        super.setUI()
                                menu.delegate = self
                                topMenuView.addSubview(menu)
                                menu.snp.makeConstraints { make in
                                                make.left.right.equalToSuperview()
                                                make.centerY.equalToSuperview()
                                                make.height.equalTo(32)
                                }
        //解决返回按钮区域过小,点击不灵敏
        title = "            "
        let topMenuView = UIView()
        topMenuView.backgroundColor = .white
        topMenuView.jq_cornerRadius = 8
        view.addSubview(topMenuView)
        topMenuView.snp.makeConstraints { make in
            make.top.equalTo(self.view.safeAreaLayoutGuide).offset(9)
            make.left.equalTo(234)
            make.right.equalTo(-234)
            make.height.equalTo(59)
        }
        menu.delegate = self
        topMenuView.addSubview(menu)
        menu.snp.makeConstraints { make in
            make.left.right.equalToSuperview()
            make.centerY.equalToSuperview()
            make.height.equalTo(32)
        }
                                pageVC.delegate = self
                                view.addSubview(pageVC.view)
                                pageVC.view.snp.makeConstraints { make in
                                                make.top.equalTo(menu.snp.bottom).offset(19)
                                                make.left.equalTo(topMenuView.snp.left)
                                                make.right.equalTo(topMenuView.snp.right)
                                                make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom)
                                }
        pageVC.delegate = self
        view.addSubview(pageVC.view)
        pageVC.view.snp.makeConstraints { make in
            make.top.equalTo(menu.snp.bottom).offset(19)
            make.left.equalTo(topMenuView.snp.left)
            make.right.equalTo(topMenuView.snp.right)
            make.bottom.equalTo(self.view.safeAreaLayoutGuide.snp.bottom)
        }
                                for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
                                                if index >= (self.limitDay - 1){
                                                                if let btn = titleL as?  UIButton{
                                                                                btn.setTitleColor(.black.withAlphaComponent(0.33), for: .normal)
                                                                                self.menu.setEnabled(false, forItemAt: UInt(index))
                                                                }
                                                }
                                }
                }
        for (index,titleL) in (self.menu.subviews.last?.subviews[1].subviews ?? []).filter({$0 is UIButton}).enumerated(){
            if index >= (self.limitDay - 1){
                if let btn = titleL as?  UIButton{
                    btn.setTitleColor(.black.withAlphaComponent(0.33), for: .normal)
                    self.menu.setEnabled(false, forItemAt: UInt(index))
                }
            }
        }
    }
                override func setRx() {
                                NotificationCenter.default.rx.notification(StudyCompleteNextLession_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in
                                                guard let weakSelf = self else { return }
                                                if let type = noti.object as? ListenType{
                                                                let homelistenSubVC = weakSelf.pageVC.currentController as! HomeListenSubVC
                                                                homelistenSubVC.jumpAt(listenType: type)
                                                }
    override func setRx() {
        NotificationCenter.default.rx.notification(StudyCompleteNextLession_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] noti in
            guard let weakSelf = self else { return }
            if let type = noti.object as? ListenType{
                let homelistenSubVC = weakSelf.pageVC.currentController as! HomeListenSubVC
                homelistenSubVC.jumpAt(listenType: type)
            }
                                }).disposed(by: disposeBag)
        }).disposed(by: disposeBag)
                                NotificationCenter.default.rx.notification(Refresh_ListenSchedule_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] _ in
                                                guard let weakSelf = self else { return }
                                                Services.studySchedule(week: weakSelf.week).subscribe(onNext: {[weak self] data in
                                                                guard let weakSelf = self else { return }
                                                                weakSelf.studyScheduleModel = data.data
        NotificationCenter.default.rx.notification(Refresh_ListenSchedule_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] _ in
            guard let weakSelf = self else { return }
            Services.studySchedule(week: weakSelf.week).subscribe(onNext: {[weak self] data in
                guard let weakSelf = self else { return }
                weakSelf.studyScheduleModel = data.data
                                                                for subVC in weakSelf.pageVC.children as! [HomeListenSubVC]{
                                                                                subVC.studyScheduleModel = weakSelf.studyScheduleModel
                                                                                subVC.tableView.reloadData()
                                                                }
                for subVC in weakSelf.pageVC.children as! [HomeListenSubVC]{
                    subVC.studyScheduleModel = weakSelf.studyScheduleModel
                    subVC.tableView.reloadData()
                }
                                                                weakSelf.refreshDay()
                weakSelf.refreshDay()
                                                }).disposed(by: weakSelf.disposeBag)
                                }).disposed(by: disposeBag)
                }
            }).disposed(by: weakSelf.disposeBag)
        }).disposed(by: disposeBag)
    }
}
extension HomeListenVC:SPPageMenuDelegate{
                func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
                                pageVC.scroll(toPage: index, animation: true)
                }
    func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
        pageVC.scroll(toPage: index, animation: true)
    }
}
extension HomeListenVC:FFPageViewControllerDelegate{
                func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
                                return menu.numberOfItems
                }
    func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
        return menu.numberOfItems
    }
                func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
                                menu.selectedItemIndex = currentPage
                }
    func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
        menu.selectedItemIndex = currentPage
    }
                func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
                                return HomeListenSubVC(page: page,quarter: quarter,week: week,studyScheduleModel: studyScheduleModel)
                }
    func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
        return HomeListenSubVC(page: page,quarter: quarter,week: week,studyScheduleModel: studyScheduleModel)
    }
}
DolphinEnglishLearnStudent/Moudle/Home/View/AwardListView.xib
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="32700.99.1234" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<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">
    <device id="ipad10_9rounded" orientation="landscape" layout="fullscreen" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22684"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
        <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"/>
@@ -18,8 +18,8 @@
                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tck-Uv-W9Z">
                    <rect key="frame" x="144" y="100" width="892" height="624"/>
                    <subviews>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="可兑换商品" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D5s-Ls-BXc">
                            <rect key="frame" x="400" y="25" width="92" height="18"/>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="天天快乐学习,月月礼品奖励" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D5s-Ls-BXc">
                            <rect key="frame" x="330" y="25" width="232.5" height="18"/>
                            <constraints>
                                <constraint firstAttribute="height" constant="18" id="Z5F-Lg-och"/>
                            </constraints>
@@ -28,7 +28,7 @@
                            <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="hKD-mg-1cZ">
                            <rect key="frame" x="37" y="61" width="188" height="19.5"/>
                            <rect key="frame" x="37" y="61" width="183" height="19.5"/>
                            <fontDescription key="fontDescription" type="system" pointSize="16"/>
                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
@@ -61,7 +61,7 @@
                            </constraints>
                        </imageView>
                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="坚持学习可以获得更多积分,快去学习吧!" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eeD-SQ-zo0">
                            <rect key="frame" x="68" y="517" width="339.5" height="21"/>
                            <rect key="frame" x="68" y="517" width="330.5" height="21"/>
                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
                            <color key="textColor" red="0.9882352941176471" green="0.27843137254901962" blue="0.27843137254901962" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <nil key="highlightedColor"/>
@@ -119,7 +119,7 @@
        </view>
    </objects>
    <resources>
        <image name="icon_waring" width="21" height="21"/>
        <image name="icon_waring" width="10.5" height="10.5"/>
        <systemColor name="systemBackgroundColor">
            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
        </systemColor>