Steven 2 anni fa
parent
commit
64d55b3a22
31 ha cambiato i file con 1121 aggiunte e 185 eliminazioni
  1. 10 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  3. 16 0
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/auth_alert_logo.imageset/Contents.json
  5. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/auth_alert_logo.imageset/auth_alert_logo@2x.png
  6. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/auth_alert_logo.imageset/auth_alert_logo@3x.png
  7. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/education_icon.imageset/Contents.json
  8. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/education_icon.imageset/education_icon@2x.png
  9. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/education_icon.imageset/education_icon@3x.png
  10. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_instrument_logo.imageset/Contents.json
  11. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_instrument_logo.imageset/mine_instrument_logo@2x.png
  12. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_instrument_logo.imageset/mine_instrument_logo@3x.png
  13. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/qualification_icon.imageset/Contents.json
  14. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/qualification_icon.imageset/qualification_icon@2x.png
  15. BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/qualification_icon.imageset/qualification_icon@3x.png
  16. 92 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m
  17. 36 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeAuthAlertView.h
  18. 73 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeAuthAlertView.m
  19. 234 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeAuthAlertView.xib
  20. 8 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.h
  21. 29 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.m
  22. 31 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.xib
  23. 16 4
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m
  24. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.h
  25. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.m
  26. 27 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.xib
  27. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.h
  28. 72 19
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.m
  29. 291 112
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.xib
  30. 55 12
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.m
  31. 39 14
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.xib

+ 10 - 0
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -569,6 +569,8 @@
 		BC542E4328407AD200633781 /* UserSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC542E4228407AD200633781 /* UserSettingViewController.m */; };
 		BC542E4628407B3D00633781 /* UseBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC542E4528407B3D00633781 /* UseBodyView.m */; };
 		BC542E4828407B4400633781 /* UseBodyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC542E4728407B4400633781 /* UseBodyView.xib */; };
+		BC5756B128B60096002302D8 /* HomeAuthAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC5756B028B60095002302D8 /* HomeAuthAlertView.m */; };
+		BC5756B328B600A3002302D8 /* HomeAuthAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC5756B228B600A3002302D8 /* HomeAuthAlertView.xib */; };
 		BC58E7D3281B9630004B0893 /* PublicNoticeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC58E7D2281B9630004B0893 /* PublicNoticeView.m */; };
 		BC58E7D5281B9637004B0893 /* PublicNoticeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC58E7D4281B9637004B0893 /* PublicNoticeView.xib */; };
 		BC58E7DD281B969B004B0893 /* MinePageTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC58E7DC281B969B004B0893 /* MinePageTopView.m */; };
@@ -2022,6 +2024,9 @@
 		BC542E4428407B3D00633781 /* UseBodyView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UseBodyView.h; sourceTree = "<group>"; };
 		BC542E4528407B3D00633781 /* UseBodyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UseBodyView.m; sourceTree = "<group>"; };
 		BC542E4728407B4400633781 /* UseBodyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UseBodyView.xib; sourceTree = "<group>"; };
+		BC5756AF28B60095002302D8 /* HomeAuthAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeAuthAlertView.h; sourceTree = "<group>"; };
+		BC5756B028B60095002302D8 /* HomeAuthAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeAuthAlertView.m; sourceTree = "<group>"; };
+		BC5756B228B600A3002302D8 /* HomeAuthAlertView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeAuthAlertView.xib; sourceTree = "<group>"; };
 		BC58E7D1281B9630004B0893 /* PublicNoticeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PublicNoticeView.h; sourceTree = "<group>"; };
 		BC58E7D2281B9630004B0893 /* PublicNoticeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PublicNoticeView.m; sourceTree = "<group>"; };
 		BC58E7D4281B9637004B0893 /* PublicNoticeView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PublicNoticeView.xib; sourceTree = "<group>"; };
@@ -4054,6 +4059,9 @@
 				BC523B01289D00C000E9D66B /* HomeHotMusicCell.h */,
 				BC523B02289D00C000E9D66B /* HomeHotMusicCell.m */,
 				BC523B03289D00C000E9D66B /* HomeHotMusicCell.xib */,
+				BC5756AF28B60095002302D8 /* HomeAuthAlertView.h */,
+				BC5756B028B60095002302D8 /* HomeAuthAlertView.m */,
+				BC5756B228B600A3002302D8 /* HomeAuthAlertView.xib */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -6812,6 +6820,7 @@
 				BC6BEAA3288A4C2A00022109 /* KSHomeButton.xib in Resources */,
 				BCC5840928A9FA8100BAB4CF /* cloud_animation_11.png in Resources */,
 				27D83F4E27F3EC2100062476 /* CreateLiveBodyView.xib in Resources */,
+				BC5756B328B600A3002302D8 /* HomeAuthAlertView.xib in Resources */,
 				BCEA75282819103B00886A86 /* UnbindBodyView.xib in Resources */,
 				BC8B6E602856ED0600866917 /* WeiboSDK.bundle in Resources */,
 				27F9030827E86CCB00C08A19 /* DeviceCheckView.xib in Resources */,
@@ -7370,6 +7379,7 @@
 				BCC9F42527F69BD200647449 /* EmptyView.m in Sources */,
 				277931F127E30FC20010E277 /* NSString+CZHSizeExtension.m in Sources */,
 				27BC3B2127F2B70300D81E30 /* MusicMessageModel.m in Sources */,
+				BC5756B128B60096002302D8 /* HomeAuthAlertView.m in Sources */,
 				27A54D0427EAC891007309A3 /* TeacherInfo.m in Sources */,
 				2780C91F27E48A2100A95A4F /* VefiCodeLoginController.m in Sources */,
 				27F9CAF527EC1A16003E0FE4 /* SCIndexViewConfiguration.m in Sources */,

BIN
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


+ 16 - 0
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -52,5 +52,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "69305BAD-5286-4E73-A12D-41D295DB519E"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/View/HomeNewHeadView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "87"
+            endingLineNumber = "87"
+            landmarkName = "-configMessage:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/auth_alert_logo.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/auth_alert_logo.imageset/auth_alert_logo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Home/auth_alert_logo.imageset/auth_alert_logo@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/education_icon.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/education_icon.imageset/education_icon@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/education_icon.imageset/education_icon@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_instrument_logo.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_instrument_logo.imageset/mine_instrument_logo@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/mine_instrument_logo.imageset/mine_instrument_logo@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/qualification_icon.imageset/Contents.json

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

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/qualification_icon.imageset/qualification_icon@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/qualification_icon.imageset/qualification_icon@3x.png


+ 92 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m

@@ -55,6 +55,7 @@
 #import "TYPageControl.h"
 #import "HomeBannerCell.h"
 #import "BadgeIntroduceView.h"
+#import "HomeAuthAlertView.h"
 
 #define BUTTONWIDTH (65)
 #define BUTTONHEIGHT (70)
@@ -93,6 +94,7 @@
 @property (nonatomic, strong) HomeAlbumView *albumView;
 @property (nonatomic, strong) NSMutableArray *albumArray;  // 热门专辑
 @property (nonatomic, strong) UICollectionView *albumCollectionView; // 专辑容器
+
 @property (nonatomic, assign) CGFloat albumViewHeight; // album 高度
 
 @property (nonatomic, strong) dispatch_group_t requestGroup;
@@ -105,6 +107,8 @@
 
 @property (nonatomic, strong) BadgeIntroduceView *intruduceAlert;
 
+@property (nonatomic, strong) HomeAuthAlertView *authAlertView;
+
 @end
 
 @implementation HomeViewController
@@ -658,7 +662,6 @@
     } confirm:^{
         [self openSettingView];
     }];
-    
 }
 
 - (void)openSettingView {
@@ -678,18 +681,99 @@
     if (!_headView) {
         _headView = [HomeNewHeadView shareInstance];
         MJWeakSelf;
-        [_headView authDetailAction:^(BOOL isShowDesc) {
-            if (isShowDesc) {
-                [weakSelf showDescAlert];
-            }
-            else {
-                [weakSelf toAuthDetail];
-            }
+        [_headView authDetailAction:^(HOMEHEADACTION action) {
+            [weakSelf headAction:action];
         }];
     }
     return _headView;
 }
 
+- (void)headAction:(HOMEHEADACTION)type {
+    switch (type) {
+        case HOMEHEADACTION_DESC:
+        {
+            [self showDescAlert];
+        }
+            break;
+        case HOMEHEADACTION_AUTH:
+        {
+            [self toAuthDetail];
+        }
+            break;
+        case HOMEHEADACTION_EDUCATION:
+        case HOMEHEADACTION_EDUCATIONFINISH:
+        {
+            [self showAuthEducationAlert];
+        }
+            break;
+        default:
+            break;
+    }
+}
+
+- (void)toAuthEducation {
+    KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
+    webCtrl.url = [NSString stringWithFormat:@"%@%@", WEBHOST, @"/#/teacherCertUpdate"];
+    [self.navigationController pushViewController:webCtrl animated:YES];
+}
+
+- (void)showAuthEducationAlert {
+    NSArray *tagArray = [self.mineInfo.tag componentsSeparatedByString:@","];
+    BOOL hasDegreeAuth = NO;
+    BOOL hasTeacherAuth = NO;
+    
+    for (NSString *tagString in tagArray) {
+        if ([tagString isEqualToString:@"DEGREE"]) { // 学历
+            hasDegreeAuth = YES;
+        }
+        else if ([tagString isEqualToString:@"TEACHER"]) { // 学历
+            hasTeacherAuth = YES;
+        }
+    }
+    
+    self.authAlertView = [HomeAuthAlertView shareIntance];
+    if (hasDegreeAuth) {
+        [self.authAlertView.educationImage setImage:[UIImage imageNamed:@"choose_instrument"]];
+        [self.authAlertView.educationStatus setText:@"已认证"];
+        [self.authAlertView.educationStatus setTextColor:HexRGB(0x999999)];
+    }
+    else {
+        [self.authAlertView.educationImage setImage:[UIImage imageNamed:@""]];
+        [self.authAlertView.educationStatus setText:@"未认证"];
+        [self.authAlertView.educationStatus setTextColor:HexRGB(0xff0000)];
+    }
+    
+    if (hasTeacherAuth) {
+        [self.authAlertView.qualificationImage setImage:[UIImage imageNamed:@"choose_instrument"]];
+        [self.authAlertView.qualificationStatus setText:@"已认证"];
+        [self.authAlertView.qualificationStatus setTextColor:HexRGB(0x999999)];
+    }
+    else {
+        [self.authAlertView.qualificationImage setImage:[UIImage imageNamed:@""]];
+        [self.authAlertView.qualificationStatus setText:@"未认证"];
+        [self.authAlertView.qualificationStatus setTextColor:HexRGB(0xff0000)];
+    }
+    if (hasDegreeAuth && hasTeacherAuth) {
+        self.authAlertView.isFinish = YES;
+        self.authAlertView.rate = 1.0f;
+    }
+    else {
+        self.authAlertView.isFinish = NO;
+        if (hasDegreeAuth || hasTeacherAuth) {
+            self.authAlertView.rate = 0.9f;
+        }
+        else {
+            self.authAlertView.rate = 0.8f;
+        }
+    }
+    MJWeakSelf;
+    [self.authAlertView authEducationAction:^{
+        [weakSelf toAuthEducation];
+    }];
+    [self.authAlertView showAlertView];
+    
+}
+
 - (BadgeIntroduceView *)intruduceAlert {
     if (!_intruduceAlert) {
         _intruduceAlert = [BadgeIntroduceView shareInstance];

+ 36 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeAuthAlertView.h

@@ -0,0 +1,36 @@
+//
+//  HomeAuthAlertView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/8/24.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void(^AuthAlertCallback)(void);
+
+@interface HomeAuthAlertView : UIView
+
+@property (weak, nonatomic) IBOutlet UIImageView *educationImage;
+
+@property (weak, nonatomic) IBOutlet UILabel *educationStatus;
+
+@property (weak, nonatomic) IBOutlet UIImageView *qualificationImage;
+
+@property (weak, nonatomic) IBOutlet UILabel *qualificationStatus;
+
+@property (nonatomic, assign) BOOL isFinish;
+
+@property (nonatomic, assign) CGFloat rate;  // 0~1
+
++ (instancetype)shareIntance;
+
+- (void)showAlertView;
+
+- (void)authEducationAction:(AuthAlertCallback)callback;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 73 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeAuthAlertView.m

@@ -0,0 +1,73 @@
+//
+//  HomeAuthAlertView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2022/8/24.
+//
+
+#import "HomeAuthAlertView.h"
+
+@interface HomeAuthAlertView ()
+
+@property (nonatomic, copy) AuthAlertCallback callback;
+
+@property (weak, nonatomic) IBOutlet UIButton *authButton;
+
+@end
+
+@implementation HomeAuthAlertView
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    self.educationImage.layer.borderWidth = 1.0f;
+    self.educationImage.layer.borderColor = THEMECOLOR.CGColor;
+    self.qualificationImage.layer.borderWidth = 1.0f;
+    self.qualificationImage.layer.borderColor = THEMECOLOR.CGColor;
+}
+
++ (instancetype)shareIntance {
+    HomeAuthAlertView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeAuthAlertView" owner:nil options:nil] firstObject];
+    view.frame = CGRectMake(0, 0, KPortraitWidth, KPortraitHeight);
+    return view;
+}
+
+- (void)showAlertView {
+    [[NSObject getKeyWindow] addSubview:self];
+}
+
+- (void)authEducationAction:(AuthAlertCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)cancleAction:(id)sender {
+    [self removeFromSuperview];
+}
+
+- (IBAction)vefiAction:(id)sender {
+    if (self.callback) {
+        if (self.isFinish == NO) {
+            self.callback();
+        }
+    }
+    [self removeFromSuperview];
+}
+
+- (void)setIsFinish:(BOOL)isFinish {
+    _isFinish = isFinish;
+    NSString *desc = @"去认证";
+    if (isFinish) {
+        desc = @"我知道了";
+    }
+    [self.authButton setTitle:desc forState:UIControlStateNormal];
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 234 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeAuthAlertView.xib

@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <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"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="HomeAuthAlertView">
+            <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="S5g-6t-Fpm">
+                    <rect key="frame" x="60" y="273" width="294" height="350"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="La7-v8-MBP">
+                            <rect key="frame" x="0.0" y="80" width="294" height="50"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="choose_instrument" translatesAutoresizingMaskIntoConstraints="NO" id="SsM-4y-xGO">
+                                    <rect key="frame" x="56" y="17" width="16" height="16"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="16" id="5a5-E1-zQm"/>
+                                        <constraint firstAttribute="width" constant="16" id="JeH-8I-tHA"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="8"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </imageView>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="实名认证" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gAz-Wh-eiQ">
+                                    <rect key="frame" x="90" y="15" width="66" height="20"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <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="4rx-WC-zfX">
+                                    <rect key="frame" x="204" y="17.5" width="37" height="15"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="gAz-Wh-eiQ" firstAttribute="centerY" secondItem="SsM-4y-xGO" secondAttribute="centerY" id="0bd-fb-K7d"/>
+                                <constraint firstItem="SsM-4y-xGO" firstAttribute="leading" secondItem="La7-v8-MBP" secondAttribute="leading" constant="56" id="9vl-Z3-5Go"/>
+                                <constraint firstAttribute="trailing" secondItem="4rx-WC-zfX" secondAttribute="trailing" constant="53" id="AXy-7q-Ztc"/>
+                                <constraint firstItem="gAz-Wh-eiQ" firstAttribute="leading" secondItem="SsM-4y-xGO" secondAttribute="trailing" constant="18" id="WbQ-bY-ng6"/>
+                                <constraint firstAttribute="height" constant="50" id="eLd-yf-Udz"/>
+                                <constraint firstItem="SsM-4y-xGO" firstAttribute="centerY" secondItem="La7-v8-MBP" secondAttribute="centerY" id="jWv-0F-GwO"/>
+                                <constraint firstItem="4rx-WC-zfX" firstAttribute="centerY" secondItem="La7-v8-MBP" secondAttribute="centerY" id="zwW-3S-0lA"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kD1-T8-B0B">
+                            <rect key="frame" x="0.0" y="135" width="294" height="50"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="choose_instrument" translatesAutoresizingMaskIntoConstraints="NO" id="4QQ-aV-7ng">
+                                    <rect key="frame" x="56" y="17" width="16" height="16"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="16" id="GWB-4S-a0R"/>
+                                        <constraint firstAttribute="height" constant="16" id="IDB-jO-Ecu"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="8"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </imageView>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="学历认证" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iBq-1D-Hz5">
+                                    <rect key="frame" x="90" y="15" width="65.5" height="20"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <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="jgC-xK-8Yj">
+                                    <rect key="frame" x="204" y="17.5" width="37" height="15"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="jgC-xK-8Yj" secondAttribute="trailing" constant="53" id="KDE-xi-2OV"/>
+                                <constraint firstItem="iBq-1D-Hz5" firstAttribute="leading" secondItem="4QQ-aV-7ng" secondAttribute="trailing" constant="18" id="Tdl-lX-TXe"/>
+                                <constraint firstAttribute="height" constant="50" id="U6o-Pr-w7I"/>
+                                <constraint firstItem="4QQ-aV-7ng" firstAttribute="leading" secondItem="kD1-T8-B0B" secondAttribute="leading" constant="56" id="j7O-GO-7A9"/>
+                                <constraint firstItem="iBq-1D-Hz5" firstAttribute="centerY" secondItem="4QQ-aV-7ng" secondAttribute="centerY" id="nLt-uu-ELF"/>
+                                <constraint firstItem="4QQ-aV-7ng" firstAttribute="centerY" secondItem="kD1-T8-B0B" secondAttribute="centerY" id="vSr-CK-2OQ"/>
+                                <constraint firstItem="jgC-xK-8Yj" firstAttribute="centerY" secondItem="kD1-T8-B0B" secondAttribute="centerY" id="w9K-5Z-T3D"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="REN-8t-BMt">
+                            <rect key="frame" x="0.0" y="190" width="294" height="50"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="choose_instrument" translatesAutoresizingMaskIntoConstraints="NO" id="JGR-Ho-kOw">
+                                    <rect key="frame" x="56" y="17" width="16" height="16"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="16" id="8gW-ZO-PKJ"/>
+                                        <constraint firstAttribute="width" constant="16" id="xfE-pW-hJu"/>
+                                    </constraints>
+                                    <userDefinedRuntimeAttributes>
+                                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                            <real key="value" value="8"/>
+                                        </userDefinedRuntimeAttribute>
+                                    </userDefinedRuntimeAttributes>
+                                </imageView>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="师资认证" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8DY-hv-jEi">
+                                    <rect key="frame" x="90" y="15" width="66" height="20"/>
+                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <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="UVp-7J-uoD">
+                                    <rect key="frame" x="204" y="17.5" width="37" height="15"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="JGR-Ho-kOw" firstAttribute="leading" secondItem="REN-8t-BMt" secondAttribute="leading" constant="56" id="6CJ-Dq-plp"/>
+                                <constraint firstItem="UVp-7J-uoD" firstAttribute="centerY" secondItem="REN-8t-BMt" secondAttribute="centerY" id="9RV-gH-Wbf"/>
+                                <constraint firstItem="8DY-hv-jEi" firstAttribute="leading" secondItem="JGR-Ho-kOw" secondAttribute="trailing" constant="18" id="9dj-6y-p1E"/>
+                                <constraint firstItem="JGR-Ho-kOw" firstAttribute="centerY" secondItem="REN-8t-BMt" secondAttribute="centerY" id="N9f-TV-KbV"/>
+                                <constraint firstItem="8DY-hv-jEi" firstAttribute="centerY" secondItem="JGR-Ho-kOw" secondAttribute="centerY" id="P9W-Gk-O0b"/>
+                                <constraint firstAttribute="height" constant="50" id="R3H-ao-dHA"/>
+                                <constraint firstAttribute="trailing" secondItem="UVp-7J-uoD" secondAttribute="trailing" constant="53" id="aaM-o4-iLp"/>
+                            </constraints>
+                        </view>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xyd-GR-oTw">
+                            <rect key="frame" x="52" y="288" width="190" height="42"/>
+                            <color key="backgroundColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="42" id="q9S-bg-E4E"/>
+                                <constraint firstAttribute="width" constant="190" id="zGQ-H1-56r"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="16"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="去认证"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="21"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="vefiAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="bzD-EJ-G4s"/>
+                            </connections>
+                        </button>
+                        <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="i3I-fN-Axx">
+                            <rect key="frame" x="27" y="271" width="240" height="9"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstItem="La7-v8-MBP" firstAttribute="leading" secondItem="S5g-6t-Fpm" secondAttribute="leading" id="84Q-3v-m7q"/>
+                        <constraint firstItem="REN-8t-BMt" firstAttribute="leading" secondItem="S5g-6t-Fpm" secondAttribute="leading" id="Ota-Cj-XuH"/>
+                        <constraint firstItem="La7-v8-MBP" firstAttribute="top" secondItem="S5g-6t-Fpm" secondAttribute="top" constant="80" id="UgM-GX-Ldy"/>
+                        <constraint firstAttribute="trailing" secondItem="La7-v8-MBP" secondAttribute="trailing" id="Z0T-mQ-drz"/>
+                        <constraint firstAttribute="trailing" secondItem="kD1-T8-B0B" secondAttribute="trailing" id="bEk-26-f65"/>
+                        <constraint firstItem="Xyd-GR-oTw" firstAttribute="centerX" secondItem="S5g-6t-Fpm" secondAttribute="centerX" id="dNy-wx-7EE"/>
+                        <constraint firstItem="REN-8t-BMt" firstAttribute="top" secondItem="kD1-T8-B0B" secondAttribute="bottom" constant="5" id="eJW-gN-2UD"/>
+                        <constraint firstItem="kD1-T8-B0B" firstAttribute="top" secondItem="La7-v8-MBP" secondAttribute="bottom" constant="5" id="i9z-vc-LDm"/>
+                        <constraint firstAttribute="height" constant="350" id="l19-oa-Fut"/>
+                        <constraint firstItem="kD1-T8-B0B" firstAttribute="leading" secondItem="S5g-6t-Fpm" secondAttribute="leading" id="o17-5X-CBG"/>
+                        <constraint firstAttribute="trailing" secondItem="REN-8t-BMt" secondAttribute="trailing" id="o9X-fN-ubc"/>
+                        <constraint firstAttribute="bottom" secondItem="Xyd-GR-oTw" secondAttribute="bottom" constant="20" id="vcP-qB-0ZZ"/>
+                        <constraint firstAttribute="width" constant="294" id="wSl-Jq-j9c"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wqg-tg-4wC">
+                    <rect key="frame" x="185" y="638" width="44" height="44"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="44" id="ge1-kR-Trv"/>
+                        <constraint firstAttribute="width" constant="44" id="ycy-HO-Vel"/>
+                    </constraints>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <state key="normal" image="cancleButton"/>
+                    <connections>
+                        <action selector="cancleAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="jfi-67-TLZ"/>
+                    </connections>
+                </button>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="auth_alert_logo" translatesAutoresizingMaskIntoConstraints="NO" id="Ihv-84-Ke0">
+                    <rect key="frame" x="60" y="248" width="294" height="82"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="82" id="clg-Qw-fuA"/>
+                        <constraint firstAttribute="width" constant="294" id="iUm-tS-fJw"/>
+                    </constraints>
+                </imageView>
+            </subviews>
+            <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="sRGB"/>
+            <constraints>
+                <constraint firstItem="S5g-6t-Fpm" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="3Kj-18-YlH"/>
+                <constraint firstItem="Wqg-tg-4wC" firstAttribute="top" secondItem="S5g-6t-Fpm" secondAttribute="bottom" constant="15" id="EV9-gT-DdJ"/>
+                <constraint firstItem="Wqg-tg-4wC" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="VSr-ti-yKB"/>
+                <constraint firstItem="Ihv-84-Ke0" firstAttribute="top" secondItem="S5g-6t-Fpm" secondAttribute="top" constant="-25" id="ceb-GX-3b6"/>
+                <constraint firstItem="Ihv-84-Ke0" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="sOS-hH-Q7g"/>
+                <constraint firstItem="S5g-6t-Fpm" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="ym1-Bg-bc1"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="authButton" destination="Xyd-GR-oTw" id="3L6-Kv-FzU"/>
+                <outlet property="educationImage" destination="4QQ-aV-7ng" id="Vv5-Qw-fHT"/>
+                <outlet property="educationStatus" destination="jgC-xK-8Yj" id="o7j-hI-y4s"/>
+                <outlet property="qualificationImage" destination="JGR-Ho-kOw" id="T5D-pH-A05"/>
+                <outlet property="qualificationStatus" destination="UVp-7J-uoD" id="P7A-JW-dgu"/>
+            </connections>
+            <point key="canvasLocation" x="131.8840579710145" y="78.348214285714278"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="auth_alert_logo" width="294" height="82"/>
+        <image name="cancleButton" width="25" height="25"/>
+        <image name="choose_instrument" width="22" height="22"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>

+ 8 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.h

@@ -8,7 +8,14 @@
 #import <UIKit/UIKit.h>
 #import "TeacherInfo.h"
 
-typedef void(^HomeHeadBlock)(BOOL isShowDesc);
+typedef NS_ENUM(NSInteger, HOMEHEADACTION) {
+    HOMEHEADACTION_DESC,   // 勋章介绍
+    HOMEHEADACTION_AUTH,   // 达人认证
+    HOMEHEADACTION_EDUCATION, // 学历认证
+    HOMEHEADACTION_EDUCATIONFINISH, // 完成认证
+};
+
+typedef void(^HomeHeadBlock)(HOMEHEADACTION action);
 
 NS_ASSUME_NONNULL_BEGIN
 

+ 29 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.m

@@ -12,6 +12,8 @@
 
 @property (nonatomic, copy) HomeHeadBlock callback;
 
+@property (weak, nonatomic) IBOutlet UIView *dotView;
+
 @property (weak, nonatomic) IBOutlet UIImageView *styleImage;
 @property (weak, nonatomic) IBOutlet UIImageView *videoImage;
 @property (weak, nonatomic) IBOutlet UIImageView *liveImage;
@@ -78,6 +80,9 @@
     [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
     [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
     
+    BOOL hasDegreeAuth = NO;
+    BOOL hasTeacherAuth = NO;
+    
     for (NSString *tagString in tagArray) {
         if ([tagString isEqualToString:@"STYLE"]) {
             [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
@@ -91,6 +96,12 @@
         else if ([tagString isEqualToString:@"MUSIC"]) {
             [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
         }
+        else if ([tagString isEqualToString:@"DEGREE"]) { // 学历
+            hasDegreeAuth = YES;
+        }
+        else if ([tagString isEqualToString:@"TEACHER"]) { // 学历
+            hasTeacherAuth = YES;
+        }
     }
     self.failedView.hidden = YES;
     // 认证状态
@@ -102,6 +113,12 @@
         self.authTitle.textColor = THEMECOLOR;
         [self.nextImage setImage:[UIImage imageNamed:@"auth_next_green"]];
         self.hasAuth = YES;
+        if (hasDegreeAuth && hasTeacherAuth) {
+            self.dotView.hidden = YES;
+        }
+        else {
+            self.dotView.hidden = NO;
+        }
     }
     else if ([infoMessage.entryStatus isEqualToString:@"DOING"]) { // 认证审核中
         self.authView.backgroundColor = HexRGB(0xEFFBF9);
@@ -128,17 +145,24 @@
 }
 
 - (IBAction)authAction:(id)sender {
-    if (self.hasAuth) {
-        return;
-    }
     if (self.callback) {
-        self.callback(NO);
+        if (self.hasAuth == NO) {
+            self.callback(HOMEHEADACTION_AUTH);
+        }
+        else {
+            if (self.dotView.isHidden) {
+                self.callback(HOMEHEADACTION_EDUCATIONFINISH);
+            }
+            else {
+                self.callback(HOMEHEADACTION_EDUCATION);
+            }
+        }
     }
 }
 
 - (IBAction)showDesc:(id)sender {
     if (self.callback) {
-        self.callback(YES);
+        self.callback(HOMEHEADACTION_DESC);
     }
 }
 

+ 31 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.xib

@@ -156,10 +156,39 @@
                         <constraint firstAttribute="bottom" secondItem="PmF-Mq-0JT" secondAttribute="bottom" id="qSM-7y-dxV"/>
                     </constraints>
                 </view>
+                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qdW-5e-X9f">
+                    <rect key="frame" x="499" y="34.5" width="8" height="8"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kpv-Vp-oFn">
+                            <rect key="frame" x="1" y="1" width="6" height="6"/>
+                            <color key="backgroundColor" red="0.97254901959999995" green="0.31372549020000001" blue="0.26274509800000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="3"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="Kpv-Vp-oFn" secondAttribute="bottom" constant="1" id="2ao-Tm-9Iq"/>
+                        <constraint firstAttribute="width" constant="8" id="8Wg-CL-OI1"/>
+                        <constraint firstAttribute="trailing" secondItem="Kpv-Vp-oFn" secondAttribute="trailing" constant="1" id="Bjf-MV-tn7"/>
+                        <constraint firstItem="Kpv-Vp-oFn" firstAttribute="top" secondItem="qdW-5e-X9f" secondAttribute="top" constant="1" id="Km6-mf-jch"/>
+                        <constraint firstItem="Kpv-Vp-oFn" firstAttribute="leading" secondItem="qdW-5e-X9f" secondAttribute="leading" constant="1" id="cu2-Ci-cV5"/>
+                        <constraint firstAttribute="height" constant="8" id="d44-81-CEE"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="4"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
             </subviews>
             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstItem="sUP-ZP-Dxs" firstAttribute="centerY" secondItem="G60-Et-o3r" secondAttribute="centerY" id="35Q-mn-MzL"/>
+                <constraint firstItem="qdW-5e-X9f" firstAttribute="top" secondItem="Jce-l2-nVi" secondAttribute="top" id="5LM-ZS-zye"/>
                 <constraint firstAttribute="trailing" secondItem="Jce-l2-nVi" secondAttribute="trailing" constant="24" id="5wY-ji-QPi"/>
                 <constraint firstItem="Eh7-SW-rWW" firstAttribute="leading" secondItem="nDP-6c-WeM" secondAttribute="trailing" id="BxK-XL-TfM"/>
                 <constraint firstItem="K9c-3E-YUK" firstAttribute="trailing" secondItem="Jce-l2-nVi" secondAttribute="trailing" id="J4y-Jw-53G"/>
@@ -167,6 +196,7 @@
                 <constraint firstAttribute="bottom" secondItem="G60-Et-o3r" secondAttribute="bottom" constant="19" id="MVP-qZ-GKN"/>
                 <constraint firstItem="GIJ-nK-Ul6" firstAttribute="centerY" secondItem="G60-Et-o3r" secondAttribute="centerY" id="PDh-cd-ke5"/>
                 <constraint firstItem="Eh7-SW-rWW" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Rpf-oZ-a5A"/>
+                <constraint firstItem="qdW-5e-X9f" firstAttribute="trailing" secondItem="Jce-l2-nVi" secondAttribute="trailing" id="Xgz-oO-3SI"/>
                 <constraint firstItem="Eh7-SW-rWW" firstAttribute="centerY" secondItem="nDP-6c-WeM" secondAttribute="centerY" id="YbM-aK-3Wu"/>
                 <constraint firstItem="nDP-6c-WeM" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="ZKO-9F-z81"/>
                 <constraint firstItem="G60-Et-o3r" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="25" id="oxP-IZ-oSI"/>
@@ -182,6 +212,7 @@
                 <outlet property="authTitle" destination="H6Y-EP-j6O" id="RCR-Iv-2tA"/>
                 <outlet property="authView" destination="Jce-l2-nVi" id="edG-mm-RBe"/>
                 <outlet property="badgeCountLabel" destination="GIJ-nK-Ul6" id="CSP-lB-ixS"/>
+                <outlet property="dotView" destination="qdW-5e-X9f" id="Fv6-3s-EES"/>
                 <outlet property="failDescLabel" destination="tqA-UQ-Vrb" id="zSe-wv-Itu"/>
                 <outlet property="failedView" destination="K9c-3E-YUK" id="QaJ-bg-rxW"/>
                 <outlet property="gradeTitleLabel" destination="nDP-6c-WeM" id="Kmw-F7-p3b"/>

+ 16 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/Controller/MinePageViewController.m

@@ -16,6 +16,7 @@
 #import "UserInfoManager.h"
 #import "MinePageTopView.h"
 #import "BadgeIntroduceView.h"
+#import "MyStyleViewController.h"
 
 #define HEADER_HEIGHT (50)
 
@@ -54,10 +55,10 @@
     CGFloat headHeight = [self.headView getViewHeight];
     self.headView.frame = CGRectMake(0, 0, kScreenWidth, headHeight);
     
-    CGFloat topHeight = kNaviBarHeight + 30;
+    CGFloat topHeight = kNaviBarHeight;
     
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, topHeight, kScreenWidth, HEADER_HEIGHT)];
-    _categoryView.backgroundColor = [UIColor clearColor];
+    _categoryView.backgroundColor = HexRGB(0xf6f8f9);
     self.categoryView.titles = self.titles;
     self.categoryView.delegate = self;
     self.categoryView.titleFont = [UIFont systemFontOfSize:16.0f];
@@ -105,6 +106,7 @@
     [self.topView configSource:self.teacherInfo];
     // 刷新达人认证和音乐人认证状态
     [self refreshAuthStatus];
+    [self.headView.bgView sd_setImageWithURL:[NSURL URLWithString:[self.teacherInfo.heardUrl getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:@"USERDEFAULT_LOGO"]];
 }
 
 - (void)refreshAuthStatus {
@@ -336,13 +338,23 @@
     if (!_topView) {
         _topView = [MinePageTopView shareInstance];
         MJWeakSelf;
-        [_topView badgeDetail:^{
-            [weakSelf showDescAlert];
+        [_topView badgeDetail:^(BOOL isBadgeIntroduce) {
+            if (isBadgeIntroduce) {
+                [weakSelf showDescAlert];
+            }
+            else {
+                [weakSelf editAction];
+            }
         }];
     }
     return _topView;
 }
 
+- (void)editAction {
+    MyStyleViewController *style = [[MyStyleViewController alloc] init];
+    [self.navigationController pushViewController:style animated:YES];
+}
+
 - (BadgeIntroduceView *)intruduceAlert {
     if (!_intruduceAlert) {
         _intruduceAlert = [BadgeIntroduceView shareInstance];

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.h

@@ -13,6 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MinePageHeadView : UIView
 
+@property (weak, nonatomic) IBOutlet UIImageView *bgView;
+
 + (instancetype)shareInstance;
 
 - (void)backAction:(MinePageBack)callback;

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.m

@@ -42,7 +42,7 @@
 }
 
 - (CGFloat)getViewHeight {
-    return (376 / 228) * kScreenWidth;
+    return 188 + iPhoneXSafeTopMargin;
 }
 
 

+ 27 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageHeadView.xib

@@ -10,15 +10,21 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MinePageHeadView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="251"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="216"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="minepage_bg" translatesAutoresizingMaskIntoConstraints="NO" id="thf-Z9-Jzc">
-                    <rect key="frame" x="0.0" y="0.0" width="414" height="251"/>
-                    <constraints>
-                        <constraint firstAttribute="width" secondItem="thf-Z9-Jzc" secondAttribute="height" multiplier="376:228" id="wkT-6A-fyt"/>
-                    </constraints>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="thf-Z9-Jzc">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="216"/>
                 </imageView>
+                <visualEffectView opaque="NO" contentMode="scaleAspectFit" translatesAutoresizingMaskIntoConstraints="NO" id="xSz-jk-rc5">
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="216"/>
+                    <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="OBV-oJ-nhS">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="216"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    </view>
+                    <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                    <blurEffect style="light"/>
+                </visualEffectView>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="emY-nQ-Sbn">
                     <rect key="frame" x="0.0" y="0.0" width="414" height="88"/>
                     <subviews>
@@ -40,37 +46,50 @@
                                 <action selector="back:" destination="iN0-l3-epB" eventType="touchUpInside" id="4lb-dc-K1q"/>
                             </connections>
                         </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的主页" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4go-Bw-8sZ">
+                            <rect key="frame" x="170" y="55" width="74" height="22"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <nil key="highlightedColor"/>
+                        </label>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="88" id="1wg-e6-kqA"/>
                         <constraint firstAttribute="bottom" secondItem="LL3-u6-PTR" secondAttribute="bottom" id="6KH-1M-vAP"/>
                         <constraint firstItem="LL3-u6-PTR" firstAttribute="leading" secondItem="emY-nQ-Sbn" secondAttribute="leading" id="AmB-tA-N1v"/>
+                        <constraint firstItem="4go-Bw-8sZ" firstAttribute="centerY" secondItem="LL3-u6-PTR" secondAttribute="centerY" id="HUv-vT-SjJ"/>
                         <constraint firstItem="7zL-CV-PVX" firstAttribute="leading" secondItem="emY-nQ-Sbn" secondAttribute="leading" constant="22" id="JXX-id-lc3"/>
                         <constraint firstItem="LL3-u6-PTR" firstAttribute="centerY" secondItem="7zL-CV-PVX" secondAttribute="centerY" id="Umc-bJ-zgR"/>
+                        <constraint firstItem="4go-Bw-8sZ" firstAttribute="centerX" secondItem="emY-nQ-Sbn" secondAttribute="centerX" id="iRs-kb-Pcu"/>
                     </constraints>
                 </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
                 <constraint firstAttribute="trailing" secondItem="thf-Z9-Jzc" secondAttribute="trailing" id="10A-zz-Sjc"/>
+                <constraint firstItem="xSz-jk-rc5" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="1fm-NH-2YW"/>
                 <constraint firstAttribute="trailing" secondItem="emY-nQ-Sbn" secondAttribute="trailing" id="6nX-C1-kua"/>
                 <constraint firstItem="thf-Z9-Jzc" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="GZK-Nn-oSU"/>
                 <constraint firstItem="thf-Z9-Jzc" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="L9Y-JA-QTd"/>
                 <constraint firstItem="emY-nQ-Sbn" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="LwY-BP-gc7"/>
+                <constraint firstAttribute="trailing" secondItem="xSz-jk-rc5" secondAttribute="trailing" id="QD8-h1-yxW"/>
+                <constraint firstAttribute="bottom" secondItem="thf-Z9-Jzc" secondAttribute="bottom" id="SJh-q0-W2x"/>
+                <constraint firstAttribute="bottom" secondItem="xSz-jk-rc5" secondAttribute="bottom" id="rbs-Pb-IXM"/>
+                <constraint firstItem="xSz-jk-rc5" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="xDQ-7x-B1O"/>
                 <constraint firstItem="emY-nQ-Sbn" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="y56-3o-ZPL"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="bgView" destination="thf-Z9-Jzc" id="bcT-kn-PMh"/>
                 <outlet property="viewHeight" destination="1wg-e6-kqA" id="79o-QW-2Js"/>
             </connections>
-            <point key="canvasLocation" x="314.49275362318843" y="-103.45982142857143"/>
+            <point key="canvasLocation" x="311.59420289855075" y="-117.85714285714285"/>
         </view>
     </objects>
     <resources>
         <image name="back_white" width="12" height="20"/>
-        <image name="minepage_bg" width="376" height="228"/>
     </resources>
 </document>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.h

@@ -9,7 +9,7 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-typedef void(^MinePageTopCallback)(void);
+typedef void(^MinePageTopCallback)(BOOL isBadgeIntroduce);
 
 @interface MinePageTopView : UIView
 

+ 72 - 19
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.m

@@ -21,7 +21,9 @@
 
 @property (weak, nonatomic) IBOutlet UILabel *fansCount;
 
-@property (weak, nonatomic) IBOutlet UILabel *courseCount;
+@property (weak, nonatomic) IBOutlet UILabel *finishCourse;
+
+@property (weak, nonatomic) IBOutlet UILabel *unfinishCourse;
 
 @property (weak, nonatomic) IBOutlet KSStarView *starView;
 
@@ -31,9 +33,13 @@
 @property (weak, nonatomic) IBOutlet UIImageView *liveImage;
 @property (weak, nonatomic) IBOutlet UIImageView *musicImage;
 
-@property (nonatomic, copy) MinePageTopCallback callback;
+@property (weak, nonatomic) IBOutlet UIImageView *firstImage;
+@property (weak, nonatomic) IBOutlet UIImageView *secondImage;
 
-@property (weak, nonatomic) IBOutlet UIView *emptyView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *firstImageWidth;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *secondImageWidth;
+
+@property (nonatomic, copy) MinePageTopCallback callback;
 
 @end
 
@@ -55,10 +61,12 @@
 - (void)configSource:(id)source {
     if ([source isKindOfClass:[TeacherInfo class]]) {
         TeacherInfo *infoMessage = source;
-        [self displayCount:infoMessage.fansNum inView:self.fansCount];
-        [self displayCount:infoMessage.expTime inView:self.courseCount];
-        self.starView.rate = infoMessage.starGrade / 5.0f;
 
+        self.starView.rate = infoMessage.starGrade / 5.0f;
+        self.fansCount.text = [NSString stringWithFormat:@"%.0f",infoMessage.fansNum];
+        self.finishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.expTime];
+        self.unfinishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.unExpTime];
+        
         if (![NSString isEmptyString:infoMessage.heardUrl]) {
             [self.userAvatar sd_setImageWithURL:[NSURL URLWithString:[infoMessage.heardUrl getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
         }
@@ -76,18 +84,28 @@
         }
         else {
             NSArray *tagArray = [infoMessage.subjectName componentsSeparatedByString:@","];
-            CGFloat maxWidth = kScreenWidth - 28 - 10 - 80;
+            CGFloat maxWidth = kScreenWidth - 28 - 10 - 91;
             [self configTagViewWithTagArray:tagArray maxWidth:maxWidth];
         }
         
         NSArray *tagArray = [infoMessage.tag componentsSeparatedByString:@","];
         NSString *viperImage = infoMessage.isVip ? @"mine_vip" : @"mine_nomal";
+        if (infoMessage.isVip) {
+            self.userAvatar.layer.borderColor = HexRGB(0xFFE0B9).CGColor;
+        }
+        else {
+            self.userAvatar.layer.borderColor = HexRGB(0xffffff).CGColor;
+        }
         [self.viperImage setImage:[UIImage imageNamed:viperImage]];
+        
         [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
         [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
         [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
         [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
-
+        
+        BOOL hasDegreeAuth = NO;
+        BOOL hasTeacherAuth = NO;
+        
         for (NSString *tagString in tagArray) {
             if ([tagString isEqualToString:@"STYLE"]) {
                 [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
@@ -101,22 +119,50 @@
             else if ([tagString isEqualToString:@"MUSIC"]) {
                 [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
             }
+            else if ([tagString isEqualToString:@"DEGREE"]) { // 学历
+                hasDegreeAuth = YES;
+            }
+            else if ([tagString isEqualToString:@"TEACHER"]) { // 学历
+                hasTeacherAuth = YES;
+            }
+        }
+        
+        if (hasDegreeAuth && hasTeacherAuth) {
+            [self.firstImage setImage:[UIImage imageNamed:@"education_icon"]];
+            self.firstImage.hidden = NO;
+            self.firstImageWidth.constant = 39.0f;
+            [self.secondImage setImage:[UIImage imageNamed:@"qualification_icon"]];
+            self.secondImage.hidden = NO;
+            self.secondImageWidth.constant = 39.0f;
+        }
+        else {
+            if (hasDegreeAuth) {
+                [self.firstImage setImage:[UIImage imageNamed:@"education_icon"]];
+                self.firstImage.hidden = NO;
+                self.firstImageWidth.constant = 39.0f;
+                self.secondImage.hidden = YES;
+                self.secondImageWidth.constant = 0.0f;
+            }
+            else if (hasTeacherAuth) {
+                [self.firstImage setImage:[UIImage imageNamed:@"qualification_icon"]];
+                self.firstImage.hidden = NO;
+                self.firstImageWidth.constant = 39.0f;
+                self.secondImage.hidden = YES;
+                self.secondImageWidth.constant = 0.0f;
+            }
+            else {
+                self.firstImage.hidden = YES;
+                self.firstImageWidth.constant = 0.0f;
+                self.secondImage.hidden = YES;
+                self.secondImageWidth.constant = 0.0f;
+            }
         }
     }
 }
 
-- (void)displayCount:(NSInteger)count inView:(UILabel *)descLabel {
-    if (count > 10000) {
-        double descNum = count / 10000.0;
-        descLabel.text = [NSString stringWithFormat:@"%.2f万",descNum];
-    }
-    else {
-        descLabel.text = [NSString stringWithFormat:@"%ld",count];
-    }
-}
 
 - (CGFloat)getViewHeight {
-    return 140.0f;
+    return 290.0f;
 }
 
 - (void)configTagViewWithTagArray:(NSArray *)tagArray maxWidth:(CGFloat)maxWidth {
@@ -162,10 +208,17 @@
 
 - (IBAction)topCallback:(id)sender {
     if (self.callback) {
-        self.callback();
+        self.callback(YES);
     }
 }
 
+- (IBAction)editAction:(id)sender {
+    if (self.callback) {
+        self.callback(NO);
+    }
+}
+
+
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 291 - 112
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/MinePage/View/MinePageTopView.xib

@@ -11,42 +11,14 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MinePageTopView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="141"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="290"/>
+            <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w1f-9h-A4M">
-                    <rect key="frame" x="14" y="0.0" width="386" height="128"/>
+                    <rect key="frame" x="14" y="39" width="386" height="240"/>
                     <subviews>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="3JZ-4N-xLY">
-                            <rect key="frame" x="11" y="14" width="58" height="58"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="58" id="BQF-U0-Q5F"/>
-                                <constraint firstAttribute="height" constant="58" id="YUb-bw-MgE"/>
-                            </constraints>
-                            <userDefinedRuntimeAttributes>
-                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                    <real key="value" value="28"/>
-                                </userDefinedRuntimeAttribute>
-                            </userDefinedRuntimeAttributes>
-                        </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LhQ-B1-N8g">
-                            <rect key="frame" x="79" y="18" width="37" height="25"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="25" id="ttJ-dx-kxO"/>
-                            </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
-                            <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fZT-24-HFt">
-                            <rect key="frame" x="79" y="49" width="297" height="16"/>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="16" id="vKC-05-GFT"/>
-                            </constraints>
-                        </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j04-k1-RIV">
-                            <rect key="frame" x="11" y="92" width="90" height="19"/>
+                            <rect key="frame" x="186" y="100" width="90" height="19"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7YI-eG-JcD" customClass="KSStarView">
                                     <rect key="frame" x="0.0" y="0.0" width="90" height="19"/>
@@ -63,66 +35,81 @@
                                 <constraint firstAttribute="width" constant="90" id="y0S-Fk-5a6"/>
                             </constraints>
                         </view>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="粉丝" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Auh-B5-0cI">
-                            <rect key="frame" x="252" y="93" width="29" height="17"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DMU-LC-BHE">
-                            <rect key="frame" x="286" y="101.5" width="0.0" height="0.0"/>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
-                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="已上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xuu-dd-NkY">
-                            <rect key="frame" x="313" y="93" width="58" height="17"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mKL-9h-RCS">
-                            <rect key="frame" x="376" y="89.5" width="0.0" height="24"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="education_icon" translatesAutoresizingMaskIntoConstraints="NO" id="HE2-vS-rZC">
+                            <rect key="frame" x="58" y="57.5" width="39" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="16" id="89i-Zb-0oV"/>
+                                <constraint firstAttribute="width" constant="39" id="eqp-Dk-Zah"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="qualification_icon" translatesAutoresizingMaskIntoConstraints="NO" id="V1i-h1-rXV">
+                            <rect key="frame" x="103" y="57.5" width="39" height="16"/>
                             <constraints>
-                                <constraint firstAttribute="height" constant="24" id="6cQ-De-Nmw"/>
+                                <constraint firstAttribute="height" constant="16" id="73J-NP-LJJ"/>
+                                <constraint firstAttribute="width" constant="39" id="MJP-a5-PaL"/>
                             </constraints>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
-                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LhQ-B1-N8g">
+                            <rect key="frame" x="11" y="53" width="37" height="25"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="25" id="ttJ-dx-kxO"/>
+                            </constraints>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                            <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="b32-Xt-2YL">
-                            <rect key="frame" x="299" y="95.5" width="1" height="12"/>
-                            <color key="backgroundColor" red="0.82745098039999998" green="0.82745098039999998" blue="0.82745098039999998" alpha="1" colorSpace="calibratedRGB"/>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sxy-XN-92K">
+                            <rect key="frame" x="315" y="11" width="60" height="28"/>
+                            <color key="backgroundColor" red="0.84705882352941175" green="1" blue="0.97254901960784312" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
-                                <constraint firstAttribute="width" constant="1" id="0Kr-BR-e7W"/>
-                                <constraint firstAttribute="height" constant="12" id="rTl-Sw-e2q"/>
+                                <constraint firstAttribute="width" constant="60" id="5Lv-mb-fqw"/>
+                                <constraint firstAttribute="height" constant="28" id="dDW-No-JUn"/>
                             </constraints>
-                        </view>
+                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" title="编辑">
+                                <color key="titleColor" red="0.1764705882352941" green="0.7803921568627451" blue="0.66666666666666663" alpha="1" colorSpace="calibratedRGB"/>
+                            </state>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="14"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                            <connections>
+                                <action selector="editAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="2l2-4J-UOE"/>
+                            </connections>
+                        </button>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_instrument_logo" translatesAutoresizingMaskIntoConstraints="NO" id="IsQ-zh-7a5">
+                            <rect key="frame" x="13" y="129" width="68" height="17"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="17" id="HJa-ca-Sql"/>
+                                <constraint firstAttribute="width" constant="68" id="JHn-lI-mz8"/>
+                            </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="vZ2-QD-d8h">
+                            <rect key="frame" x="11" y="102" width="37" height="15"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nhJ-jg-o1N">
-                            <rect key="frame" x="122" y="18.5" width="118" height="24"/>
+                            <rect key="frame" x="48" y="97.5" width="76" height="24"/>
                             <subviews>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="O4w-5f-Puh">
-                                    <rect key="frame" x="0.0" y="4.5" width="34" height="15"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="15" id="ogj-H9-eEZ"/>
-                                        <constraint firstAttribute="width" constant="34" id="qVC-Jx-k8a"/>
-                                    </constraints>
-                                </imageView>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineStyle_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="lc6-oJ-H90">
-                                    <rect key="frame" x="38" y="4" width="16" height="16"/>
+                                    <rect key="frame" x="0.0" y="4" width="16" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="16" id="682-cb-Xnt"/>
                                         <constraint firstAttribute="height" constant="16" id="PNE-zN-nhS"/>
                                     </constraints>
                                 </imageView>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineVideo_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="YEy-rl-QiY">
-                                    <rect key="frame" x="58" y="4" width="16" height="16"/>
+                                    <rect key="frame" x="20" y="4" width="16" height="16"/>
                                 </imageView>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="msK-hu-IGj">
-                                    <rect key="frame" x="78" y="4" width="16" height="16"/>
+                                    <rect key="frame" x="40" y="4" width="16" height="16"/>
                                 </imageView>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="Gtu-Mm-ocB">
-                                    <rect key="frame" x="98" y="4" width="16" height="16"/>
+                                    <rect key="frame" x="60" y="4" width="16" height="16"/>
                                 </imageView>
                             </subviews>
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@@ -131,53 +118,211 @@
                                 <constraint firstItem="YEy-rl-QiY" firstAttribute="width" secondItem="lc6-oJ-H90" secondAttribute="width" id="0vQ-v4-H35"/>
                                 <constraint firstItem="msK-hu-IGj" firstAttribute="leading" secondItem="YEy-rl-QiY" secondAttribute="trailing" constant="4" id="5FR-xI-N1R"/>
                                 <constraint firstItem="YEy-rl-QiY" firstAttribute="height" secondItem="lc6-oJ-H90" secondAttribute="height" id="5p5-ob-RhJ"/>
+                                <constraint firstItem="YEy-rl-QiY" firstAttribute="centerY" secondItem="lc6-oJ-H90" secondAttribute="centerY" id="6Gh-SR-OKh"/>
+                                <constraint firstItem="Gtu-Mm-ocB" firstAttribute="centerY" secondItem="lc6-oJ-H90" secondAttribute="centerY" id="8Ca-Q0-vWc"/>
+                                <constraint firstItem="msK-hu-IGj" firstAttribute="centerY" secondItem="lc6-oJ-H90" secondAttribute="centerY" id="8Lt-VW-ch0"/>
+                                <constraint firstItem="lc6-oJ-H90" firstAttribute="centerY" secondItem="nhJ-jg-o1N" secondAttribute="centerY" id="9JL-vE-0I0"/>
                                 <constraint firstAttribute="height" constant="24" id="H5T-sZ-VbG"/>
                                 <constraint firstItem="Gtu-Mm-ocB" firstAttribute="leading" secondItem="msK-hu-IGj" secondAttribute="trailing" constant="4" id="HUY-bk-dNV"/>
-                                <constraint firstItem="YEy-rl-QiY" firstAttribute="centerY" secondItem="O4w-5f-Puh" secondAttribute="centerY" id="QPY-rM-lWF"/>
                                 <constraint firstItem="msK-hu-IGj" firstAttribute="height" secondItem="lc6-oJ-H90" secondAttribute="height" id="RMj-pG-D5b"/>
                                 <constraint firstItem="Gtu-Mm-ocB" firstAttribute="width" secondItem="lc6-oJ-H90" secondAttribute="width" id="TFr-3m-1Yf"/>
-                                <constraint firstItem="O4w-5f-Puh" firstAttribute="leading" secondItem="nhJ-jg-o1N" secondAttribute="leading" id="ZAZ-xO-N3k"/>
-                                <constraint firstItem="lc6-oJ-H90" firstAttribute="centerY" secondItem="O4w-5f-Puh" secondAttribute="centerY" id="d8N-WM-xgq"/>
                                 <constraint firstItem="YEy-rl-QiY" firstAttribute="leading" secondItem="lc6-oJ-H90" secondAttribute="trailing" constant="4" id="fnW-Of-fnf"/>
-                                <constraint firstAttribute="width" constant="118" id="mc3-Tm-XBL"/>
-                                <constraint firstItem="msK-hu-IGj" firstAttribute="centerY" secondItem="O4w-5f-Puh" secondAttribute="centerY" id="mwh-Ta-8cm"/>
-                                <constraint firstItem="lc6-oJ-H90" firstAttribute="leading" secondItem="O4w-5f-Puh" secondAttribute="trailing" constant="4" id="pjM-3i-sCg"/>
-                                <constraint firstItem="O4w-5f-Puh" firstAttribute="centerY" secondItem="nhJ-jg-o1N" secondAttribute="centerY" id="rV9-Dd-1L3"/>
                                 <constraint firstItem="Gtu-Mm-ocB" firstAttribute="height" secondItem="lc6-oJ-H90" secondAttribute="height" id="ufV-aq-xhc"/>
-                                <constraint firstItem="Gtu-Mm-ocB" firstAttribute="centerY" secondItem="O4w-5f-Puh" secondAttribute="centerY" id="vIx-qL-7gx"/>
-                                <constraint firstAttribute="trailing" secondItem="Gtu-Mm-ocB" secondAttribute="trailing" constant="4" id="xw6-vI-D4o"/>
+                                <constraint firstItem="lc6-oJ-H90" firstAttribute="leading" secondItem="nhJ-jg-o1N" secondAttribute="leading" id="vb1-w7-FLd"/>
+                                <constraint firstAttribute="trailing" secondItem="Gtu-Mm-ocB" secondAttribute="trailing" id="xw6-vI-D4o"/>
                                 <constraint firstItem="msK-hu-IGj" firstAttribute="width" secondItem="lc6-oJ-H90" secondAttribute="width" id="z08-NF-hRX"/>
                             </constraints>
                             <connections>
                                 <outletCollection property="gestureRecognizers" destination="pU3-So-ynT" appends="YES" id="kn3-5a-J1C"/>
                             </connections>
                         </view>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="评分:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8kd-Ti-hHu">
+                            <rect key="frame" x="149" y="102" width="37" height="15"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fZT-24-HFt">
+                            <rect key="frame" x="91" y="129.5" width="285" height="16"/>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="16" id="vKC-05-GFT"/>
+                            </constraints>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TF1-4L-ikX">
+                            <rect key="frame" x="0.0" y="150" width="386" height="80"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oOv-s2-KI6">
+                                    <rect key="frame" x="0.0" y="0.0" width="128.5" height="80"/>
+                                    <subviews>
+                                        <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nI7-Zj-cP3">
+                                            <rect key="frame" x="0.0" y="15" width="128.5" height="26"/>
+                                            <gestureRecognizers/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="26" id="s5v-ce-xWq"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="22"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="unU-3i-jae">
+                                            <rect key="frame" x="128" y="28" width="0.5" height="24"/>
+                                            <color key="backgroundColor" red="0.91764705879999997" green="0.91764705879999997" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="0.5" id="7XD-bU-pXc"/>
+                                                <constraint firstAttribute="height" constant="24" id="BOX-qa-f47"/>
+                                            </constraints>
+                                        </view>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="粉丝" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hqM-qu-Ygd">
+                                            <rect key="frame" x="50" y="42" width="29" height="28"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="28" id="9Qh-NH-weO"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <gestureRecognizers/>
+                                    <constraints>
+                                        <constraint firstAttribute="trailing" secondItem="unU-3i-jae" secondAttribute="trailing" id="QWF-fP-WLi"/>
+                                        <constraint firstAttribute="bottom" secondItem="hqM-qu-Ygd" secondAttribute="bottom" constant="10" id="Wxi-Bd-jeR"/>
+                                        <constraint firstAttribute="trailing" secondItem="nI7-Zj-cP3" secondAttribute="trailing" id="YN1-T9-S1S"/>
+                                        <constraint firstItem="hqM-qu-Ygd" firstAttribute="centerX" secondItem="nI7-Zj-cP3" secondAttribute="centerX" id="crZ-yy-Trf"/>
+                                        <constraint firstItem="hqM-qu-Ygd" firstAttribute="top" secondItem="nI7-Zj-cP3" secondAttribute="bottom" constant="1" id="jP7-Do-i5Y"/>
+                                        <constraint firstItem="unU-3i-jae" firstAttribute="centerY" secondItem="oOv-s2-KI6" secondAttribute="centerY" id="jZZ-G6-WGA"/>
+                                        <constraint firstItem="nI7-Zj-cP3" firstAttribute="leading" secondItem="oOv-s2-KI6" secondAttribute="leading" id="nUn-70-jO4"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OZO-kw-VjD">
+                                    <rect key="frame" x="128.5" y="0.0" width="129" height="80"/>
+                                    <subviews>
+                                        <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WdG-ah-bQ7">
+                                            <rect key="frame" x="0.0" y="15" width="129" height="26"/>
+                                            <gestureRecognizers/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="26" id="kkf-0a-Aft"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="22"/>
+                                            <color key="textColor" red="0.0" green="0.0" 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="已上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VX3-MA-GKi">
+                                            <rect key="frame" x="35.5" y="42" width="58" height="28"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="28" id="u2s-Pi-uLD"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nSM-G3-hi1">
+                                            <rect key="frame" x="128.5" y="28" width="0.5" height="24"/>
+                                            <color key="backgroundColor" red="0.91764705879999997" green="0.91764705879999997" blue="0.91764705879999997" alpha="1" colorSpace="calibratedRGB"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="24" id="DZa-I7-4xF"/>
+                                                <constraint firstAttribute="width" constant="0.5" id="y0R-Z3-A8o"/>
+                                            </constraints>
+                                        </view>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <gestureRecognizers/>
+                                    <constraints>
+                                        <constraint firstItem="VX3-MA-GKi" firstAttribute="centerX" secondItem="WdG-ah-bQ7" secondAttribute="centerX" id="3jC-oK-DNr"/>
+                                        <constraint firstItem="WdG-ah-bQ7" firstAttribute="leading" secondItem="OZO-kw-VjD" secondAttribute="leading" id="6wb-J8-pUs"/>
+                                        <constraint firstItem="nSM-G3-hi1" firstAttribute="centerY" secondItem="OZO-kw-VjD" secondAttribute="centerY" id="FqU-6J-83b"/>
+                                        <constraint firstAttribute="bottom" secondItem="VX3-MA-GKi" secondAttribute="bottom" constant="10" id="JDi-w0-EuP"/>
+                                        <constraint firstItem="VX3-MA-GKi" firstAttribute="top" secondItem="WdG-ah-bQ7" secondAttribute="bottom" constant="1" id="aEL-hu-hkC"/>
+                                        <constraint firstAttribute="trailing" secondItem="nSM-G3-hi1" secondAttribute="trailing" id="jF3-dA-N64"/>
+                                        <constraint firstAttribute="trailing" secondItem="WdG-ah-bQ7" secondAttribute="trailing" id="xFT-6S-ffQ"/>
+                                    </constraints>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5db-il-7Qs">
+                                    <rect key="frame" x="257.5" y="0.0" width="128.5" height="80"/>
+                                    <subviews>
+                                        <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c7p-zT-BpU">
+                                            <rect key="frame" x="0.0" y="15" width="128.5" height="26"/>
+                                            <gestureRecognizers/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="26" id="wsD-cR-9aB"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" name="DINAlternate-Bold" family="DIN Alternate" pointSize="22"/>
+                                            <color key="textColor" red="0.0" green="0.0" 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="未上课时" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UAL-0p-7uP">
+                                            <rect key="frame" x="35" y="42" width="58" height="28"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="28" id="hWC-Vo-Yra"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                    <gestureRecognizers/>
+                                    <constraints>
+                                        <constraint firstAttribute="trailing" secondItem="c7p-zT-BpU" secondAttribute="trailing" id="6la-uc-lik"/>
+                                        <constraint firstItem="UAL-0p-7uP" firstAttribute="centerX" secondItem="c7p-zT-BpU" secondAttribute="centerX" id="Hsp-YF-73w"/>
+                                        <constraint firstItem="UAL-0p-7uP" firstAttribute="top" secondItem="c7p-zT-BpU" secondAttribute="bottom" constant="1" id="P5P-so-8Wb"/>
+                                        <constraint firstAttribute="bottom" secondItem="UAL-0p-7uP" secondAttribute="bottom" constant="10" id="noJ-rW-0fk"/>
+                                        <constraint firstItem="c7p-zT-BpU" firstAttribute="leading" secondItem="5db-il-7Qs" secondAttribute="leading" id="vdI-yM-S6M"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstItem="oOv-s2-KI6" firstAttribute="top" secondItem="TF1-4L-ikX" secondAttribute="top" id="6gE-Ck-dhs"/>
+                                <constraint firstItem="OZO-kw-VjD" firstAttribute="width" secondItem="oOv-s2-KI6" secondAttribute="width" id="6pU-i5-DPJ"/>
+                                <constraint firstItem="OZO-kw-VjD" firstAttribute="leading" secondItem="oOv-s2-KI6" secondAttribute="trailing" id="9A0-5i-qjf"/>
+                                <constraint firstAttribute="height" constant="80" id="ETh-Us-0pw"/>
+                                <constraint firstAttribute="bottom" secondItem="oOv-s2-KI6" secondAttribute="bottom" id="Ghw-x4-b9U"/>
+                                <constraint firstItem="5db-il-7Qs" firstAttribute="top" secondItem="TF1-4L-ikX" secondAttribute="top" id="MRg-MS-gKj"/>
+                                <constraint firstItem="5db-il-7Qs" firstAttribute="width" secondItem="oOv-s2-KI6" secondAttribute="width" id="Nok-Nz-8wn"/>
+                                <constraint firstAttribute="bottom" secondItem="OZO-kw-VjD" secondAttribute="bottom" id="Phe-iu-fVX"/>
+                                <constraint firstAttribute="trailing" secondItem="5db-il-7Qs" secondAttribute="trailing" id="X7J-mD-uqh"/>
+                                <constraint firstItem="oOv-s2-KI6" firstAttribute="leading" secondItem="TF1-4L-ikX" secondAttribute="leading" id="az5-nB-Uc3"/>
+                                <constraint firstItem="OZO-kw-VjD" firstAttribute="top" secondItem="TF1-4L-ikX" secondAttribute="top" id="gSB-gt-2E0"/>
+                                <constraint firstAttribute="bottom" secondItem="5db-il-7Qs" secondAttribute="bottom" id="rm7-SL-1ll"/>
+                                <constraint firstItem="5db-il-7Qs" firstAttribute="leading" secondItem="OZO-kw-VjD" secondAttribute="trailing" id="tj5-DJ-lvP"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="8"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
                     </subviews>
-                    <color key="backgroundColor" red="1" green="1" blue="1" alpha="0.65000000000000002" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
-                        <constraint firstItem="mKL-9h-RCS" firstAttribute="leading" secondItem="xuu-dd-NkY" secondAttribute="trailing" constant="5" id="1bU-Ht-WAl"/>
-                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="nhJ-jg-o1N" secondAttribute="trailing" constant="10" id="4CM-ac-nI6"/>
-                        <constraint firstItem="j04-k1-RIV" firstAttribute="top" secondItem="3JZ-4N-xLY" secondAttribute="bottom" constant="20" id="FBg-HM-nKD"/>
-                        <constraint firstItem="nhJ-jg-o1N" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="trailing" constant="6" id="GrI-qe-Vfj"/>
-                        <constraint firstAttribute="height" constant="128" id="L0D-6Q-Mdc"/>
-                        <constraint firstAttribute="trailing" secondItem="fZT-24-HFt" secondAttribute="trailing" constant="10" id="Mst-ZO-Dz7"/>
-                        <constraint firstItem="xuu-dd-NkY" firstAttribute="leading" secondItem="b32-Xt-2YL" secondAttribute="trailing" constant="13" id="Pxy-By-B95"/>
-                        <constraint firstItem="LhQ-B1-N8g" firstAttribute="leading" secondItem="3JZ-4N-xLY" secondAttribute="trailing" constant="10" id="Qw8-hk-iQ3"/>
-                        <constraint firstItem="mKL-9h-RCS" firstAttribute="centerY" secondItem="xuu-dd-NkY" secondAttribute="centerY" id="Tvf-OC-Knb"/>
-                        <constraint firstItem="LhQ-B1-N8g" firstAttribute="top" secondItem="3JZ-4N-xLY" secondAttribute="top" constant="4" id="Z1a-7m-gyf"/>
-                        <constraint firstItem="nhJ-jg-o1N" firstAttribute="centerY" secondItem="LhQ-B1-N8g" secondAttribute="centerY" id="ZCk-64-OeI"/>
-                        <constraint firstItem="xuu-dd-NkY" firstAttribute="centerY" secondItem="b32-Xt-2YL" secondAttribute="centerY" id="bI5-g5-q9p"/>
-                        <constraint firstItem="DMU-LC-BHE" firstAttribute="leading" secondItem="Auh-B5-0cI" secondAttribute="trailing" constant="5" id="bbF-74-Gf6"/>
-                        <constraint firstItem="xuu-dd-NkY" firstAttribute="centerY" secondItem="DMU-LC-BHE" secondAttribute="centerY" id="dcG-yC-cf1"/>
-                        <constraint firstItem="Auh-B5-0cI" firstAttribute="centerY" secondItem="j04-k1-RIV" secondAttribute="centerY" id="ifO-ER-t0H"/>
-                        <constraint firstItem="fZT-24-HFt" firstAttribute="bottom" secondItem="3JZ-4N-xLY" secondAttribute="bottom" constant="-7" id="jgc-yF-EpV"/>
-                        <constraint firstItem="b32-Xt-2YL" firstAttribute="leading" secondItem="DMU-LC-BHE" secondAttribute="trailing" constant="13" id="km6-VD-mfD"/>
-                        <constraint firstItem="3JZ-4N-xLY" firstAttribute="top" secondItem="w1f-9h-A4M" secondAttribute="top" constant="14" id="nIW-a1-Il7"/>
-                        <constraint firstItem="fZT-24-HFt" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="leading" id="q1q-gH-lt3"/>
-                        <constraint firstItem="DMU-LC-BHE" firstAttribute="centerY" secondItem="Auh-B5-0cI" secondAttribute="centerY" id="r4d-as-K5n"/>
-                        <constraint firstItem="3JZ-4N-xLY" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" constant="11" id="s2m-2p-ugN"/>
-                        <constraint firstItem="j04-k1-RIV" firstAttribute="leading" secondItem="3JZ-4N-xLY" secondAttribute="leading" id="uim-5e-JaP"/>
-                        <constraint firstAttribute="trailing" secondItem="mKL-9h-RCS" secondAttribute="trailing" constant="10" id="wzU-5f-k1b"/>
+                        <constraint firstItem="IsQ-zh-7a5" firstAttribute="top" secondItem="vZ2-QD-d8h" secondAttribute="bottom" constant="12" id="1Te-4O-WNT"/>
+                        <constraint firstItem="HE2-vS-rZC" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="trailing" constant="10" id="38B-1g-BuQ"/>
+                        <constraint firstAttribute="height" constant="240" id="5i8-wV-axq"/>
+                        <constraint firstItem="8kd-Ti-hHu" firstAttribute="leading" secondItem="nhJ-jg-o1N" secondAttribute="trailing" constant="25" id="6sP-gm-gel"/>
+                        <constraint firstItem="V1i-h1-rXV" firstAttribute="centerY" secondItem="LhQ-B1-N8g" secondAttribute="centerY" id="8vD-t2-O4h"/>
+                        <constraint firstItem="HE2-vS-rZC" firstAttribute="centerY" secondItem="LhQ-B1-N8g" secondAttribute="centerY" id="Bmz-Yl-VO8"/>
+                        <constraint firstItem="8kd-Ti-hHu" firstAttribute="centerY" secondItem="nhJ-jg-o1N" secondAttribute="centerY" id="JxI-Yd-tqh"/>
+                        <constraint firstItem="j04-k1-RIV" firstAttribute="leading" secondItem="8kd-Ti-hHu" secondAttribute="trailing" id="MV0-Na-HhL"/>
+                        <constraint firstItem="vZ2-QD-d8h" firstAttribute="top" secondItem="LhQ-B1-N8g" secondAttribute="bottom" constant="24" id="MWA-aQ-3YI"/>
+                        <constraint firstAttribute="trailing" secondItem="sxy-XN-92K" secondAttribute="trailing" constant="11" id="OrZ-Lk-L6Y"/>
+                        <constraint firstItem="LhQ-B1-N8g" firstAttribute="top" secondItem="w1f-9h-A4M" secondAttribute="top" constant="53" id="P4z-D4-aHE"/>
+                        <constraint firstItem="sxy-XN-92K" firstAttribute="top" secondItem="w1f-9h-A4M" secondAttribute="top" constant="11" id="XOi-Hq-ObU"/>
+                        <constraint firstItem="IsQ-zh-7a5" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" constant="13" id="Zjk-J6-Ooh"/>
+                        <constraint firstItem="vZ2-QD-d8h" firstAttribute="leading" secondItem="LhQ-B1-N8g" secondAttribute="leading" id="aaA-Il-VoX"/>
+                        <constraint firstItem="fZT-24-HFt" firstAttribute="leading" secondItem="IsQ-zh-7a5" secondAttribute="trailing" constant="10" id="bG8-zK-KPw"/>
+                        <constraint firstAttribute="trailing" secondItem="fZT-24-HFt" secondAttribute="trailing" constant="10" id="dnC-wd-VPw"/>
+                        <constraint firstAttribute="trailing" secondItem="TF1-4L-ikX" secondAttribute="trailing" id="eD0-oX-57B"/>
+                        <constraint firstItem="nhJ-jg-o1N" firstAttribute="centerY" secondItem="vZ2-QD-d8h" secondAttribute="centerY" id="j5e-io-jGz"/>
+                        <constraint firstItem="j04-k1-RIV" firstAttribute="centerY" secondItem="8kd-Ti-hHu" secondAttribute="centerY" id="jgO-wy-gnh"/>
+                        <constraint firstItem="V1i-h1-rXV" firstAttribute="leading" secondItem="HE2-vS-rZC" secondAttribute="trailing" constant="6" id="knV-NT-Inw"/>
+                        <constraint firstItem="nhJ-jg-o1N" firstAttribute="leading" secondItem="vZ2-QD-d8h" secondAttribute="trailing" id="neP-ib-65J"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="V1i-h1-rXV" secondAttribute="trailing" constant="10" id="oz3-Il-T3b"/>
+                        <constraint firstItem="LhQ-B1-N8g" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" constant="11" id="pR6-dO-j4A"/>
+                        <constraint firstItem="TF1-4L-ikX" firstAttribute="leading" secondItem="w1f-9h-A4M" secondAttribute="leading" id="s0P-uh-Ooh"/>
+                        <constraint firstAttribute="bottom" secondItem="TF1-4L-ikX" secondAttribute="bottom" constant="10" id="sGE-xG-Lut"/>
+                        <constraint firstItem="fZT-24-HFt" firstAttribute="centerY" secondItem="IsQ-zh-7a5" secondAttribute="centerY" id="xhZ-uo-LnE"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -185,32 +330,63 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="3JZ-4N-xLY">
+                    <rect key="frame" x="26" y="0.0" width="78" height="78"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="78" id="BQF-U0-Q5F"/>
+                        <constraint firstAttribute="height" constant="78" id="YUb-bw-MgE"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="39"/>
+                        </userDefinedRuntimeAttribute>
+                        <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                            <real key="value" value="2"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </imageView>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="O4w-5f-Puh">
+                    <rect key="frame" x="82" y="61" width="34" height="15"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="15" id="ogj-H9-eEZ"/>
+                        <constraint firstAttribute="width" constant="34" id="qVC-Jx-k8a"/>
+                    </constraints>
+                </imageView>
             </subviews>
             <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="w1f-9h-A4M" secondAttribute="trailing" constant="14" id="GcZ-L0-XWV"/>
-                <constraint firstItem="w1f-9h-A4M" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="GhG-TW-FQh"/>
-                <constraint firstItem="w1f-9h-A4M" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="Opi-Lb-fng"/>
+                <constraint firstItem="w1f-9h-A4M" firstAttribute="top" secondItem="3JZ-4N-xLY" secondAttribute="top" constant="39" id="DWL-gY-dzx"/>
+                <constraint firstItem="w1f-9h-A4M" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" constant="14" id="KJi-WY-Wlp"/>
+                <constraint firstItem="w1f-9h-A4M" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="39" id="Kbj-BA-WD8"/>
+                <constraint firstItem="O4w-5f-Puh" firstAttribute="centerX" secondItem="3JZ-4N-xLY" secondAttribute="trailing" constant="-5" id="Nig-3E-QZK"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="w1f-9h-A4M" secondAttribute="trailing" constant="14" id="Oop-Hc-pS9"/>
+                <constraint firstItem="O4w-5f-Puh" firstAttribute="bottom" secondItem="3JZ-4N-xLY" secondAttribute="bottom" constant="-2" id="RQO-qJ-vPd"/>
+                <constraint firstItem="w1f-9h-A4M" firstAttribute="leading" secondItem="3JZ-4N-xLY" secondAttribute="leading" constant="-12" id="zGP-9T-haE"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="courseCount" destination="mKL-9h-RCS" id="geb-Y7-zeu"/>
-                <outlet property="fansCount" destination="DMU-LC-BHE" id="KTr-PK-SlC"/>
+                <outlet property="fansCount" destination="nI7-Zj-cP3" id="ph8-6G-8dN"/>
+                <outlet property="finishCourse" destination="WdG-ah-bQ7" id="kTh-1z-CZK"/>
+                <outlet property="firstImage" destination="HE2-vS-rZC" id="U2w-6R-hc6"/>
+                <outlet property="firstImageWidth" destination="eqp-Dk-Zah" id="8gT-kc-SY4"/>
                 <outlet property="liveImage" destination="msK-hu-IGj" id="2dx-Is-foA"/>
                 <outlet property="musicImage" destination="Gtu-Mm-ocB" id="Zj7-ji-aky"/>
+                <outlet property="secondImage" destination="V1i-h1-rXV" id="Rz7-en-SkA"/>
+                <outlet property="secondImageWidth" destination="MJP-a5-PaL" id="qH7-NH-jH6"/>
                 <outlet property="starBgView" destination="j04-k1-RIV" id="76r-zk-VWm"/>
                 <outlet property="starView" destination="7YI-eG-JcD" id="P33-L0-TAr"/>
                 <outlet property="styleImage" destination="lc6-oJ-H90" id="MMV-VQ-XYM"/>
                 <outlet property="subjectView" destination="fZT-24-HFt" id="A3q-LS-oWX"/>
                 <outlet property="teacherName" destination="LhQ-B1-N8g" id="2lX-lZ-dbL"/>
+                <outlet property="unfinishCourse" destination="c7p-zT-BpU" id="g9L-Mb-5B6"/>
                 <outlet property="userAvatar" destination="3JZ-4N-xLY" id="bQ4-YD-XNr"/>
                 <outlet property="videoImage" destination="YEy-rl-QiY" id="uMF-Ia-6D3"/>
                 <outlet property="viperImage" destination="O4w-5f-Puh" id="deL-wn-pHv"/>
             </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="2.34375"/>
+            <point key="canvasLocation" x="128.98550724637681" y="51.227678571428569"/>
         </view>
         <tapGestureRecognizer id="pU3-So-ynT">
             <connections>
@@ -219,11 +395,14 @@
         </tapGestureRecognizer>
     </objects>
     <resources>
+        <image name="education_icon" width="39" height="16"/>
         <image name="mineLive_nomal" width="24" height="23"/>
         <image name="mineMusic_nomal" width="24" height="23"/>
         <image name="mineStyle_nomal" width="23" height="23"/>
         <image name="mineVideo_nomal" width="23" height="23"/>
+        <image name="mine_instrument_logo" width="68" height="17"/>
         <image name="mine_nomal" width="34" height="15"/>
+        <image name="qualification_icon" width="39" height="16"/>
         <image name="user_default_avatal" width="52" height="52"/>
     </resources>
 </document>

+ 55 - 12
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.m

@@ -34,6 +34,13 @@
 @property (weak, nonatomic) IBOutlet UIImageView *liveImage;
 @property (weak, nonatomic) IBOutlet UIImageView *musicImage;
 
+@property (weak, nonatomic) IBOutlet UIImageView *firstImage;
+@property (weak, nonatomic) IBOutlet UIImageView *secondImage;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *firstImageWidth;
+
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *secondImageWidth;
+
 @end
 
 @implementation MineHeadView
@@ -45,12 +52,23 @@
 
 - (void)configMessage:(TeacherInfo *)infoMessage {
     NSArray *tagArray = [infoMessage.tag componentsSeparatedByString:@","];
+    if (infoMessage.isVip) {
+        self.userAvatal.layer.borderColor = HexRGB(0xFFE0B9).CGColor;
+    }
+    else {
+        self.userAvatal.layer.borderColor = HexRGB(0xffffff).CGColor;
+    }
+    
     NSString *viperImage = infoMessage.isVip ? @"mine_vip" : @"mine_nomal";
     [self.viperImage setImage:[UIImage imageNamed:viperImage]];
     [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_nomal"]];
     [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_nomal"]];
     [self.liveImage setImage:[UIImage imageNamed:@"mineLive_nomal"]];
     [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_nomal"]];
+    
+    BOOL hasDegreeAuth = NO;
+    BOOL hasTeacherAuth = NO;
+    
     for (NSString *tagString in tagArray) {
         if ([tagString isEqualToString:@"STYLE"]) {
             [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
@@ -64,23 +82,48 @@
         else if ([tagString isEqualToString:@"MUSIC"]) {
             [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
         }
+        else if ([tagString isEqualToString:@"DEGREE"]) { // 学历
+            hasDegreeAuth = YES;
+        }
+        else if ([tagString isEqualToString:@"TEACHER"]) { // 学历
+            hasTeacherAuth = YES;
+        }
+    }
+    if (hasDegreeAuth && hasTeacherAuth) {
+        [self.firstImage setImage:[UIImage imageNamed:@"education_icon"]];
+        self.firstImage.hidden = NO;
+        self.firstImageWidth.constant = 39.0f;
+        [self.secondImage setImage:[UIImage imageNamed:@"qualification_icon"]];
+        self.secondImage.hidden = NO;
+        self.secondImageWidth.constant = 39.0f;
     }
+    else {
+        if (hasDegreeAuth) {
+            [self.firstImage setImage:[UIImage imageNamed:@"education_icon"]];
+            self.firstImage.hidden = NO;
+            self.firstImageWidth.constant = 39.0f;
+            self.secondImage.hidden = YES;
+            self.secondImageWidth.constant = 0.0f;
+        }
+        else if (hasTeacherAuth) {
+            [self.firstImage setImage:[UIImage imageNamed:@"qualification_icon"]];
+            self.firstImage.hidden = NO;
+            self.firstImageWidth.constant = 39.0f;
+            self.secondImage.hidden = YES;
+            self.secondImageWidth.constant = 0.0f;
+        }
+        else {
+            self.firstImage.hidden = YES;
+            self.firstImageWidth.constant = 0.0f;
+            self.secondImage.hidden = YES;
+            self.secondImageWidth.constant = 0.0f;
+        }
+    }
+    
     self.fansCount.text = [NSString stringWithFormat:@"%.0f",infoMessage.fansNum];
     self.finishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.expTime];
     self.unfinishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.unExpTime];
     
-//    if ([infoMessage.entryStatus isEqualToString:@"PASS"]) {
-//        self.descView.hidden = NO;
-//        self.descViewHeight.constant = 80.0f;
-//        self.fansCount.text = [NSString stringWithFormat:@"%.0f",infoMessage.fansNum];
-//        self.finishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.expTime];
-//        self.unfinishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.unExpTime];
-//    }
-//    else {
-//        self.descView.hidden = YES;
-//        self.descViewHeight.constant = 0.0f;
-//    }
-    
     self.starView.rate = infoMessage.starGrade / 5.0f;
     
     if (![NSString isEmptyString:infoMessage.heardUrl]) {

+ 39 - 14
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.xib

@@ -26,6 +26,9 @@
                                 <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                     <real key="value" value="30"/>
                                 </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                    <real key="value" value="2"/>
+                                </userDefinedRuntimeAttribute>
                             </userDefinedRuntimeAttributes>
                         </imageView>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QPn-ge-mEt">
@@ -35,13 +38,13 @@
                             <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="bTO-A2-pYt">
-                            <rect key="frame" x="231" y="42" width="37" height="15"/>
+                            <rect key="frame" x="231" y="52" width="37" height="15"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
                             <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fw3-T6-lx2">
-                            <rect key="frame" x="268" y="40" width="95" height="19"/>
+                            <rect key="frame" x="268" y="50" width="95" height="19"/>
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Akw-bX-gxM" customClass="KSStarView">
                                     <rect key="frame" x="0.0" y="0.0" width="95" height="19"/>
@@ -66,7 +69,7 @@
                             </connections>
                         </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1mz-7i-YiM">
-                            <rect key="frame" x="122" y="37.5" width="84" height="24"/>
+                            <rect key="frame" x="122" y="47.5" width="84" height="24"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineStyle_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="iwC-il-8cq">
                                     <rect key="frame" x="4" y="4" width="16" height="16"/>
@@ -109,43 +112,61 @@
                                 <outletCollection property="gestureRecognizers" destination="Iir-fe-oYc" appends="YES" id="R5q-oq-qVK"/>
                             </connections>
                         </view>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="勋章:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cgZ-9q-1D4">
+                            <rect key="frame" x="85" y="52" width="37" height="15"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                            <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="HQj-mY-aBN">
+                            <rect key="frame" x="135" y="15" width="39" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="39" id="K4K-9C-b5a"/>
+                                <constraint firstAttribute="height" constant="16" id="eD6-D4-rNX"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="YBP-tz-Trz">
+                            <rect key="frame" x="180" y="15" width="39" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="16" id="YnY-gE-hGc"/>
+                                <constraint firstAttribute="width" constant="39" id="hbp-cI-NEE"/>
+                            </constraints>
+                        </imageView>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="W7w-Qv-jgO">
-                            <rect key="frame" x="132" y="15.5" width="34" height="15"/>
+                            <rect key="frame" x="28" y="57.5" width="34" height="15"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="34" id="CNO-WI-SZ0"/>
                                 <constraint firstAttribute="height" constant="15" id="w9i-HB-67A"/>
                             </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="cgZ-9q-1D4">
-                            <rect key="frame" x="85" y="42" width="37" height="15"/>
-                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
-                            <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <gestureRecognizers/>
                     <constraints>
                         <constraint firstItem="fw3-T6-lx2" firstAttribute="centerY" secondItem="bTO-A2-pYt" secondAttribute="centerY" id="1aL-kd-pqb"/>
-                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="W7w-Qv-jgO" secondAttribute="trailing" constant="10" id="27X-Fu-2t0"/>
                         <constraint firstItem="QPn-ge-mEt" firstAttribute="top" secondItem="Qfc-m1-p6a" secondAttribute="top" constant="6" id="7lO-u5-M6d"/>
+                        <constraint firstItem="W7w-Qv-jgO" firstAttribute="centerX" secondItem="Qfc-m1-p6a" secondAttribute="centerX" id="8zp-MH-1VC"/>
                         <constraint firstItem="bTO-A2-pYt" firstAttribute="centerY" secondItem="1mz-7i-YiM" secondAttribute="centerY" id="Brc-LP-qBn"/>
                         <constraint firstItem="fw3-T6-lx2" firstAttribute="leading" secondItem="bTO-A2-pYt" secondAttribute="trailing" id="EeU-Bv-QiN"/>
                         <constraint firstItem="QPn-ge-mEt" firstAttribute="leading" secondItem="Qfc-m1-p6a" secondAttribute="trailing" constant="10" id="EnN-ds-Dl3"/>
                         <constraint firstItem="Qfc-m1-p6a" firstAttribute="leading" secondItem="Cjp-6k-puJ" secondAttribute="leading" constant="15" id="FsO-Pm-MXG"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="YBP-tz-Trz" secondAttribute="trailing" constant="10" id="IJb-S6-0Dq"/>
                         <constraint firstItem="1mz-7i-YiM" firstAttribute="leading" secondItem="cgZ-9q-1D4" secondAttribute="trailing" id="IrQ-V5-x4c"/>
-                        <constraint firstItem="cgZ-9q-1D4" firstAttribute="top" secondItem="QPn-ge-mEt" secondAttribute="bottom" constant="7" id="JD7-oz-m2a"/>
+                        <constraint firstItem="cgZ-9q-1D4" firstAttribute="top" secondItem="QPn-ge-mEt" secondAttribute="bottom" constant="17" id="JD7-oz-m2a"/>
                         <constraint firstItem="v0U-gH-2rd" firstAttribute="trailing" secondItem="Qfc-m1-p6a" secondAttribute="trailing" id="KVZ-uZ-xhf"/>
-                        <constraint firstItem="W7w-Qv-jgO" firstAttribute="centerY" secondItem="QPn-ge-mEt" secondAttribute="centerY" id="Z4G-BK-eEx"/>
+                        <constraint firstItem="W7w-Qv-jgO" firstAttribute="centerY" secondItem="Qfc-m1-p6a" secondAttribute="bottom" id="T73-hP-tAc"/>
                         <constraint firstAttribute="height" constant="70" id="Zrl-wR-XDP"/>
                         <constraint firstItem="Qfc-m1-p6a" firstAttribute="top" secondItem="Cjp-6k-puJ" secondAttribute="top" constant="5" id="aGQ-Aj-LeI"/>
                         <constraint firstItem="v0U-gH-2rd" firstAttribute="top" secondItem="Qfc-m1-p6a" secondAttribute="top" id="aeR-6v-sXE"/>
                         <constraint firstItem="v0U-gH-2rd" firstAttribute="bottom" secondItem="Qfc-m1-p6a" secondAttribute="bottom" id="gSm-Of-Lsh"/>
-                        <constraint firstItem="W7w-Qv-jgO" firstAttribute="leading" secondItem="QPn-ge-mEt" secondAttribute="trailing" constant="6" id="jxD-gR-oSk"/>
                         <constraint firstItem="bTO-A2-pYt" firstAttribute="leading" secondItem="1mz-7i-YiM" secondAttribute="trailing" constant="25" id="oYQ-H3-N85"/>
+                        <constraint firstItem="HQj-mY-aBN" firstAttribute="centerY" secondItem="QPn-ge-mEt" secondAttribute="centerY" id="rjT-BR-f2e"/>
                         <constraint firstItem="v0U-gH-2rd" firstAttribute="leading" secondItem="Qfc-m1-p6a" secondAttribute="leading" id="sso-AP-hQ1"/>
+                        <constraint firstItem="YBP-tz-Trz" firstAttribute="leading" secondItem="HQj-mY-aBN" secondAttribute="trailing" constant="6" id="vCd-jJ-SSW"/>
                         <constraint firstItem="cgZ-9q-1D4" firstAttribute="leading" secondItem="QPn-ge-mEt" secondAttribute="leading" id="wfr-5v-JGU"/>
+                        <constraint firstItem="YBP-tz-Trz" firstAttribute="centerY" secondItem="QPn-ge-mEt" secondAttribute="centerY" id="xAM-gS-SwZ"/>
                         <constraint firstItem="1mz-7i-YiM" firstAttribute="centerY" secondItem="cgZ-9q-1D4" secondAttribute="centerY" id="xYV-Hj-NIN"/>
+                        <constraint firstItem="HQj-mY-aBN" firstAttribute="leading" secondItem="QPn-ge-mEt" secondAttribute="trailing" constant="9" id="zVF-Gh-Jpw"/>
                     </constraints>
                 </view>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bnm-Xd-HxI">
@@ -368,11 +389,15 @@
                 <outlet property="descViewHeight" destination="yWy-7x-S8I" id="XGA-Vi-0C4"/>
                 <outlet property="fansCount" destination="0Jy-fH-DYe" id="akt-uN-3dR"/>
                 <outlet property="finishCourse" destination="biK-ZQ-myM" id="N2Y-ma-dPR"/>
+                <outlet property="firstImage" destination="HQj-mY-aBN" id="YLi-jF-xQN"/>
+                <outlet property="firstImageWidth" destination="K4K-9C-b5a" id="B3Y-qb-r4d"/>
                 <outlet property="liveImage" destination="f2I-A5-dax" id="k6a-sq-aME"/>
                 <outlet property="memberCountLabel" destination="ZuM-Bk-fld" id="Fll-FM-owF"/>
                 <outlet property="memberView" destination="bnm-Xd-HxI" id="5PE-4N-miN"/>
                 <outlet property="memberViewHeight" destination="fZv-vF-MvF" id="JA2-32-lrt"/>
                 <outlet property="musicImage" destination="ZHY-XC-hwf" id="Zh9-EL-xYC"/>
+                <outlet property="secondImage" destination="YBP-tz-Trz" id="Wuv-XK-Q9W"/>
+                <outlet property="secondImageWidth" destination="hbp-cI-NEE" id="2a8-Q6-KMd"/>
                 <outlet property="starView" destination="Akw-bX-gxM" id="ts3-8H-zT3"/>
                 <outlet property="styleImage" destination="iwC-il-8cq" id="gGj-gc-mTv"/>
                 <outlet property="unfinishCourse" destination="Xtn-XA-AzX" id="UhT-2F-V5k"/>