Steven 1 year ago
parent
commit
6ce7985b8c
28 changed files with 1337 additions and 459 deletions
  1. 30 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj
  2. 14 0
      KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
  3. 11 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/KSConversationListController.m
  4. 0 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/TenantGroup/TenantChooseMemberViewController.m
  5. 6 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/GroupNotice/View/GroupNoticeCell.m
  6. 124 99
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/GroupNotice/View/GroupNoticeCell.xib
  7. 2 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Search/KSSearchResultListController.m
  8. 1 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Search/KSSearchViewController.m
  9. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/TenantGroupCreate/TenantCreateStuView.xib
  10. 39 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m
  11. 7 13
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.m
  12. 13 8
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib
  13. 11 11
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.xib
  14. 22 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeTenantView.h
  15. 38 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeTenantView.m
  16. 74 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeTenantView.xib
  17. 72 12
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Controller/MineViewController.m
  18. 18 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/TenantUnbindDetailViewController.m
  19. 8 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/UnbindTenantViewController.m
  20. 27 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineDescView.h
  21. 96 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineDescView.m
  22. 261 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineDescView.xib
  23. 0 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.h
  24. 6 58
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.m
  25. 17 248
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.xib
  26. 26 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/TenantMineHeadView.h
  27. 160 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/TenantMineHeadView.m
  28. 249 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/TenantMineHeadView.xib

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

@@ -1164,6 +1164,12 @@
 		BCF1BA5A27F5CF3C00FA36C4 /* LiveSeatApplyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF1BA5827F5CF3C00FA36C4 /* LiveSeatApplyCell.m */; };
 		BCF1BA5B27F5CF3C00FA36C4 /* LiveSeatApplyCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCF1BA5927F5CF3C00FA36C4 /* LiveSeatApplyCell.xib */; };
 		BCF425E52AB8797500BCD942 /* NSDate+DateDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF425E42AB8797500BCD942 /* NSDate+DateDetail.m */; };
+		BCF425E82AB96BDE00BCD942 /* HomeTenantView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF425E72AB96BDE00BCD942 /* HomeTenantView.m */; };
+		BCF425EA2AB96BE400BCD942 /* HomeTenantView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCF425E92AB96BE400BCD942 /* HomeTenantView.xib */; };
+		BCF425ED2AB975D200BCD942 /* TenantMineHeadView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF425EC2AB975D200BCD942 /* TenantMineHeadView.m */; };
+		BCF425EF2AB975DC00BCD942 /* TenantMineHeadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCF425EE2AB975DC00BCD942 /* TenantMineHeadView.xib */; };
+		BCF425F22AB9782500BCD942 /* MineDescView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF425F12AB9782500BCD942 /* MineDescView.m */; };
+		BCF425F42AB9782A00BCD942 /* MineDescView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCF425F32AB9782A00BCD942 /* MineDescView.xib */; };
 		BCF61BE128041FC90000ACFE /* UIView+ExtensionForDotLine.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF61BE028041FC90000ACFE /* UIView+ExtensionForDotLine.m */; };
 		BCF61BE42804248F0000ACFE /* InstrumentChooseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF61BE32804248F0000ACFE /* InstrumentChooseViewController.m */; };
 		BCF61BE8280425DA0000ACFE /* InstrumentChooseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF61BE6280425DA0000ACFE /* InstrumentChooseCell.m */; };
@@ -3160,6 +3166,15 @@
 		BCF1BA5927F5CF3C00FA36C4 /* LiveSeatApplyCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LiveSeatApplyCell.xib; sourceTree = "<group>"; };
 		BCF425E32AB8797500BCD942 /* NSDate+DateDetail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+DateDetail.h"; sourceTree = "<group>"; };
 		BCF425E42AB8797500BCD942 /* NSDate+DateDetail.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+DateDetail.m"; sourceTree = "<group>"; };
+		BCF425E62AB96BDE00BCD942 /* HomeTenantView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeTenantView.h; sourceTree = "<group>"; };
+		BCF425E72AB96BDE00BCD942 /* HomeTenantView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeTenantView.m; sourceTree = "<group>"; };
+		BCF425E92AB96BE400BCD942 /* HomeTenantView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HomeTenantView.xib; sourceTree = "<group>"; };
+		BCF425EB2AB975D200BCD942 /* TenantMineHeadView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TenantMineHeadView.h; sourceTree = "<group>"; };
+		BCF425EC2AB975D200BCD942 /* TenantMineHeadView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TenantMineHeadView.m; sourceTree = "<group>"; };
+		BCF425EE2AB975DC00BCD942 /* TenantMineHeadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TenantMineHeadView.xib; sourceTree = "<group>"; };
+		BCF425F02AB9782400BCD942 /* MineDescView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MineDescView.h; sourceTree = "<group>"; };
+		BCF425F12AB9782500BCD942 /* MineDescView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MineDescView.m; sourceTree = "<group>"; };
+		BCF425F32AB9782A00BCD942 /* MineDescView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MineDescView.xib; sourceTree = "<group>"; };
 		BCF61BDF28041FC90000ACFE /* UIView+ExtensionForDotLine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+ExtensionForDotLine.h"; sourceTree = "<group>"; };
 		BCF61BE028041FC90000ACFE /* UIView+ExtensionForDotLine.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+ExtensionForDotLine.m"; sourceTree = "<group>"; };
 		BCF61BE22804248F0000ACFE /* InstrumentChooseViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InstrumentChooseViewController.h; sourceTree = "<group>"; };
@@ -4442,6 +4457,9 @@
 				2723B68A27F1685500E0B90B /* HomeNavView.h */,
 				2723B68B27F1685500E0B90B /* HomeNavView.m */,
 				2723B68D27F1686100E0B90B /* HomeNavView.xib */,
+				BCF425E62AB96BDE00BCD942 /* HomeTenantView.h */,
+				BCF425E72AB96BDE00BCD942 /* HomeTenantView.m */,
+				BCF425E92AB96BE400BCD942 /* HomeTenantView.xib */,
 				BC6BEAA8288E3D7300022109 /* HomeNewHeadView.h */,
 				BC6BEAA9288E3D7300022109 /* HomeNewHeadView.m */,
 				BC6BEAAB288E3D7B00022109 /* HomeNewHeadView.xib */,
@@ -4515,6 +4533,12 @@
 				BC523B0E28A09F2F00E9D66B /* MineHeadView.h */,
 				BC523B0F28A09F2F00E9D66B /* MineHeadView.m */,
 				BC523B1128A09F3800E9D66B /* MineHeadView.xib */,
+				BCF425F02AB9782400BCD942 /* MineDescView.h */,
+				BCF425F12AB9782500BCD942 /* MineDescView.m */,
+				BCF425F32AB9782A00BCD942 /* MineDescView.xib */,
+				BCF425EB2AB975D200BCD942 /* TenantMineHeadView.h */,
+				BCF425EC2AB975D200BCD942 /* TenantMineHeadView.m */,
+				BCF425EE2AB975DC00BCD942 /* TenantMineHeadView.xib */,
 				BC14A60B28A0AAE00086395C /* MineFunctionView.h */,
 				BC14A60C28A0AAE00086395C /* MineFunctionView.m */,
 				BC14A60E28A0AAE80086395C /* MineFunctionView.xib */,
@@ -7855,6 +7879,7 @@
 				BC12638328FEB5B900509E90 /* UserDetailBottomView.xib in Resources */,
 				BC71D295288811BF0010F14B /* tabbar4.json in Resources */,
 				BCA7C34428476533009D20EC /* KSBoardAddStaffView.xib in Resources */,
+				BCF425EA2AB96BE400BCD942 /* HomeTenantView.xib in Resources */,
 				BCA353E52859797500377661 /* MusicRoomStudentCell.xib in Resources */,
 				BC58E7DF281B96A4004B0893 /* MinePageTopView.xib in Resources */,
 				BCEA75322819336A00886A86 /* WithdrawBodyView.xib in Resources */,
@@ -7869,10 +7894,12 @@
 				BCAD01C22872F5560002CC40 /* LiveVideoListView.xib in Resources */,
 				275E3DE927F4679E0010EC30 /* LiveRoomHeadView.xib in Resources */,
 				BC6BEAA3288A4C2A00022109 /* KSHomeButton.xib in Resources */,
+				BCF425EF2AB975DC00BCD942 /* TenantMineHeadView.xib in Resources */,
 				BCC5840928A9FA8100BAB4CF /* cloud_animation_11.png in Resources */,
 				BC02BCE528B324C9005CB483 /* LiveApplyControlView.xib in Resources */,
 				27D83F4E27F3EC2100062476 /* CreateLiveBodyView.xib in Resources */,
 				BC5756B328B600A3002302D8 /* HomeAuthAlertView.xib in Resources */,
+				BCF425F42AB9782A00BCD942 /* MineDescView.xib in Resources */,
 				BCEA75282819103B00886A86 /* UnbindBodyView.xib in Resources */,
 				BC8B6E602856ED0600866917 /* WeiboSDK.bundle in Resources */,
 				27F9030827E86CCB00C08A19 /* DeviceCheckView.xib in Resources */,
@@ -8433,6 +8460,7 @@
 				BCED5CB4285083AC009A42DE /* ShareMusicViewController.m in Sources */,
 				BC1365B8280D130C00EB03E2 /* MyVideoCourseBodyView.m in Sources */,
 				2779323F27E30FC30010E277 /* VoMemoryCache.m in Sources */,
+				BCF425E82AB96BDE00BCD942 /* HomeTenantView.m in Sources */,
 				BCDF82042A8A2919005F8B82 /* ClassMemberSettingHeadView.m in Sources */,
 				BCB9FA40286DA337005D766B /* GuideViewController.m in Sources */,
 				BC71DF252A8A014F003F165E /* KSImageDisplayView.m in Sources */,
@@ -8540,6 +8568,7 @@
 				BC221FB928C8687300F99802 /* MusicSortView.m in Sources */,
 				BC4BCE7D2823B66000522C8B /* AddressDetailBodyView.m in Sources */,
 				275FA19D27E7246F00CFEA2E /* RCConnectionManager.m in Sources */,
+				BCF425ED2AB975D200BCD942 /* TenantMineHeadView.m in Sources */,
 				27FC2F6D27F1BE4800FCC239 /* VideoCourseViewController.m in Sources */,
 				277931DC27E30FC20010E277 /* MBProgressHUD+KSShow.m in Sources */,
 				2779321227E30FC30010E277 /* YKNodeModel.m in Sources */,
@@ -8766,6 +8795,7 @@
 				BC542E3628406F7700633781 /* UserAuthBodyView.m in Sources */,
 				2779321827E30FC30010E277 /* SkipTextField.m in Sources */,
 				BC106B832A8F4586000759A9 /* TXLiveMessageLeave.m in Sources */,
+				BCF425F22AB9782500BCD942 /* MineDescView.m in Sources */,
 				BCA353ED2859B4EC00377661 /* MusicRoomHomeworkStudentController.m in Sources */,
 				BC6BEAA4288A4C2A00022109 /* KSHomeButton.m in Sources */,
 				27A2F63027E70E57009E2380 /* UserInfo.m in Sources */,

+ 14 - 0
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

@@ -0,0 +1,14 @@
+{
+  "pins" : [
+    {
+      "identity" : "audiokit",
+      "kind" : "remoteSourceControl",
+      "location" : "https://github.com/AudioKit/AudioKit.git",
+      "state" : {
+        "revision" : "36ea09c87bf703291a60e694742d56ff221c56ae",
+        "version" : "5.0.0"
+      }
+    }
+  ],
+  "version" : 2
+}

+ 11 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/KSConversationListController.m

@@ -6,6 +6,8 @@
 //
 
 #import "KSConversationListController.h"
+#import "TUIMessageDataProvider.h"
+#import "TUIMessageCellConfig.h"
 
 @interface KSConversationListController ()
 
@@ -13,6 +15,15 @@
 
 @implementation KSConversationListController
 
++ (void)initialize {
+    [TUIMessageDataProvider setDataSourceClass:self];
+}
+
+#pragma mark - TUIMessageBaseDataProviderDataSource
++ (Class)onGetCustomMessageCellDataClass:(NSString *)businessID {
+    return [TUIMessageCellConfig getCustomMessageCellDataClass:businessID];
+}
+
 @end
 
 

+ 0 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Controller/TenantGroup/TenantChooseMemberViewController.m

@@ -100,7 +100,6 @@
         }
         [self.dataArray addObject:model];
     }
-    self.dataArray = [NSMutableArray array];
     [self.tableView reloadData];
     [self changePromptLabelState];
 }

+ 6 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/GroupNotice/View/GroupNoticeCell.m

@@ -49,14 +49,15 @@
     if ([source isKindOfClass:[GroupNoticeModel class]]) {
         GroupNoticeModel *model = source;
         self.userName.text = [NSString returnNoNullStringWithString:model.username];
-//        BOOL isCourseGroup = [model.groupId containsString:@"COURSE"] ? YES : NO;
-//        NSString *groupPlaceHolder = isCourseGroup ? GROUP_COURSE_LOGO : GROUP_FAN_LOGO;
-//        [self.userLogo setImage:[UIImage imageNamed:groupPlaceHolder]];
-        
         
         [self.userLogo sd_setImageWithURL:[NSURL URLWithString:[model.avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USER_LOGO_RECTANGLE]];
         self.noticeTitle.text = [NSString returnNoNullStringWithString:model.title];
-        self.noticeContent.text = [NSString returnNoNullStringWithString:model.content];
+        
+        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
+        [paragraphStyle setLineSpacing:4];//调整行间距
+        NSMutableAttributedString *attrs = [[NSMutableAttributedString alloc] initWithString:[NSString returnNoNullStringWithString:model.content] attributes:@{NSParagraphStyleAttributeName:paragraphStyle,NSFontAttributeName:[UIFont systemFontOfSize:14.0f],NSForegroundColorAttributeName:HexRGB(0x333333)}];
+        self.noticeContent.attributedText = attrs;
+
         self.focusLabel.hidden = model.top ? NO : YES;
         self.modifyTime.text = [NSString returnNoNullStringWithString:model.updateTime];
     }

+ 124 - 99
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/GroupNotice/View/GroupNoticeCell.xib

@@ -1,127 +1,149 @@
 <?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" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="253" id="KGk-i7-Jjw" customClass="GroupNoticeCell">
-            <rect key="frame" x="0.0" y="0.0" width="359" height="253"/>
+        <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="206" id="KGk-i7-Jjw" customClass="GroupNoticeCell">
+            <rect key="frame" x="0.0" y="0.0" width="359" height="206"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
             <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
-                <rect key="frame" x="0.0" y="0.0" width="359" height="253"/>
+                <rect key="frame" x="0.0" y="0.0" width="359" height="206"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_avatarRectangle" translatesAutoresizingMaskIntoConstraints="NO" id="Gkn-L8-UCb">
-                        <rect key="frame" x="16" y="15" width="60" height="60"/>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qWq-La-TpT">
+                        <rect key="frame" x="13" y="12" width="333" height="194"/>
+                        <subviews>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_avatarRectangle" translatesAutoresizingMaskIntoConstraints="NO" id="Gkn-L8-UCb">
+                                <rect key="frame" x="12" y="12" width="48" height="48"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="48" id="8bz-sK-gjT"/>
+                                    <constraint firstAttribute="width" constant="48" id="VaV-68-izM"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="6"/>
+                                    </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="vad-UL-yLE">
+                                <rect key="frame" x="70" y="40" width="0.0" height="18"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="18" id="G1H-uK-NYV"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.46666666666666667" green="0.46666666666666667" blue="0.46666666666666667" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="置顶" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fse-Bd-Rui">
+                                <rect key="frame" x="76" y="39" width="40" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="eAd-Zt-CN7"/>
+                                    <constraint firstAttribute="width" constant="40" id="gtu-Jt-duR"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.99607843137254903" green="0.14117647058823529" blue="0.31764705882352939" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="10"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                                        <color key="value" red="0.99607843137254903" green="0.14117647058823529" blue="0.31764705882352939" alpha="1" colorSpace="calibratedRGB"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                        <real key="value" value="1"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </label>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gv9-px-E4j">
+                                <rect key="frame" x="285" y="0.0" width="40" height="40"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="40" id="0ay-Cx-fo8"/>
+                                    <constraint firstAttribute="height" constant="40" id="v9h-3o-0Hd"/>
+                                </constraints>
+                                <state key="normal" image="notice_action"/>
+                                <connections>
+                                    <action selector="editAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="LKl-Wu-uAP"/>
+                                </connections>
+                            </button>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="038-4g-5JZ">
+                                <rect key="frame" x="12" y="72" width="309" height="1"/>
+                                <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="1" id="3Wh-Ue-Sj3"/>
+                                </constraints>
+                            </view>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gxd-9e-9Xw">
+                                <rect key="frame" x="12" y="85" width="309" height="87"/>
+                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="15"/>
+                                <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="252" text="" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FWq-QF-ONl">
+                                <rect key="frame" x="12" y="178" width="309" height="0.0"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <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="2c3-yX-YxS">
+                                <rect key="frame" x="70" y="14" width="203" height="22"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="22" id="dMw-tJ-YFP"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
+                                <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
-                            <constraint firstAttribute="height" constant="60" id="8bz-sK-gjT"/>
-                            <constraint firstAttribute="width" constant="60" id="VaV-68-izM"/>
+                            <constraint firstItem="Gv9-px-E4j" firstAttribute="top" secondItem="qWq-La-TpT" secondAttribute="top" id="2bt-UB-klh"/>
+                            <constraint firstAttribute="trailing" secondItem="038-4g-5JZ" secondAttribute="trailing" constant="12" id="ART-lR-s3C"/>
+                            <constraint firstItem="Gkn-L8-UCb" firstAttribute="leading" secondItem="qWq-La-TpT" secondAttribute="leading" constant="12" id="IYn-ew-2ea"/>
+                            <constraint firstItem="Gv9-px-E4j" firstAttribute="leading" secondItem="2c3-yX-YxS" secondAttribute="trailing" constant="12" id="Izw-tV-fyQ"/>
+                            <constraint firstItem="2c3-yX-YxS" firstAttribute="leading" secondItem="Gkn-L8-UCb" secondAttribute="trailing" constant="10" id="J3a-nQ-zqB"/>
+                            <constraint firstItem="vad-UL-yLE" firstAttribute="leading" secondItem="2c3-yX-YxS" secondAttribute="leading" id="JDu-Se-aI6"/>
+                            <constraint firstAttribute="trailing" secondItem="Gv9-px-E4j" secondAttribute="trailing" constant="8" id="N4A-xt-LAp"/>
+                            <constraint firstItem="vad-UL-yLE" firstAttribute="top" secondItem="2c3-yX-YxS" secondAttribute="bottom" constant="4" id="N7G-Ce-QIc"/>
+                            <constraint firstItem="gxd-9e-9Xw" firstAttribute="leading" secondItem="qWq-La-TpT" secondAttribute="leading" constant="12" id="NDs-Xr-hHO"/>
+                            <constraint firstItem="038-4g-5JZ" firstAttribute="top" secondItem="Gkn-L8-UCb" secondAttribute="bottom" constant="12" id="PH8-z7-60N"/>
+                            <constraint firstAttribute="trailing" secondItem="FWq-QF-ONl" secondAttribute="trailing" constant="12" id="RGL-31-rdK"/>
+                            <constraint firstAttribute="trailing" secondItem="gxd-9e-9Xw" secondAttribute="trailing" constant="12" id="S2d-pS-kaY"/>
+                            <constraint firstItem="FWq-QF-ONl" firstAttribute="top" secondItem="gxd-9e-9Xw" secondAttribute="bottom" constant="6" id="Vf4-jv-WpV"/>
+                            <constraint firstItem="gxd-9e-9Xw" firstAttribute="top" secondItem="038-4g-5JZ" secondAttribute="bottom" constant="12" id="WdV-Qv-AqI"/>
+                            <constraint firstAttribute="bottom" secondItem="FWq-QF-ONl" secondAttribute="bottom" constant="16" id="YVP-D4-aqo"/>
+                            <constraint firstItem="2c3-yX-YxS" firstAttribute="top" secondItem="Gkn-L8-UCb" secondAttribute="top" constant="2" id="ay7-jB-Ghd"/>
+                            <constraint firstItem="Fse-Bd-Rui" firstAttribute="leading" secondItem="vad-UL-yLE" secondAttribute="trailing" constant="6" id="b7x-ei-t05"/>
+                            <constraint firstItem="038-4g-5JZ" firstAttribute="leading" secondItem="qWq-La-TpT" secondAttribute="leading" constant="12" id="bC8-ah-beD"/>
+                            <constraint firstItem="FWq-QF-ONl" firstAttribute="leading" secondItem="qWq-La-TpT" secondAttribute="leading" constant="12" id="jAC-st-q1t"/>
+                            <constraint firstItem="Fse-Bd-Rui" firstAttribute="centerY" secondItem="vad-UL-yLE" secondAttribute="centerY" id="lF9-xB-hfp"/>
+                            <constraint firstItem="Gkn-L8-UCb" firstAttribute="top" secondItem="qWq-La-TpT" secondAttribute="top" constant="12" id="vJe-1d-d4U"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                <real key="value" value="6"/>
+                                <real key="value" value="10"/>
                             </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="2c3-yX-YxS">
-                        <rect key="frame" x="87" y="23" width="0.0" height="25"/>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="25" id="dMw-tJ-YFP"/>
-                        </constraints>
-                        <fontDescription key="fontDescription" type="system" pointSize="18"/>
-                        <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" 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="vad-UL-yLE">
-                        <rect key="frame" x="87" y="48" width="0.0" height="20"/>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="20" id="G1H-uK-NYV"/>
-                        </constraints>
-                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                        <color key="textColor" red="0.54117647058823526" green="0.54117647058823526" blue="0.54117647058823526" alpha="1" colorSpace="calibratedRGB"/>
-                        <nil key="highlightedColor"/>
-                    </label>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="置顶" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fse-Bd-Rui">
-                        <rect key="frame" x="97" y="47" width="43" height="22"/>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="22" id="eAd-Zt-CN7"/>
-                            <constraint firstAttribute="width" constant="43" id="gtu-Jt-duR"/>
-                        </constraints>
-                        <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                        <color key="textColor" red="0.98039215686274506" green="0.37647058823529411" blue="0.26666666666666666" alpha="1" colorSpace="calibratedRGB"/>
-                        <nil key="highlightedColor"/>
-                        <userDefinedRuntimeAttributes>
-                            <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                <real key="value" value="11"/>
-                            </userDefinedRuntimeAttribute>
-                            <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
-                                <color key="value" red="0.98039215690000003" green="0.37647058820000001" blue="0.2666666667" alpha="1" colorSpace="calibratedRGB"/>
-                            </userDefinedRuntimeAttribute>
-                            <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
-                                <real key="value" value="1"/>
-                            </userDefinedRuntimeAttribute>
-                        </userDefinedRuntimeAttributes>
-                    </label>
-                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gv9-px-E4j">
-                        <rect key="frame" x="314" y="15.5" width="40" height="40"/>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="40" id="0ay-Cx-fo8"/>
-                            <constraint firstAttribute="height" constant="40" id="v9h-3o-0Hd"/>
-                        </constraints>
-                        <state key="normal" image="notice_action"/>
-                        <connections>
-                            <action selector="editAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="LKl-Wu-uAP"/>
-                        </connections>
-                    </button>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gxd-9e-9Xw">
-                        <rect key="frame" x="16" y="93" width="327" height="117"/>
-                        <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
-                        <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <nil key="highlightedColor"/>
-                    </label>
-                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="252" usesAttributedText="YES" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FWq-QF-ONl">
-                        <rect key="frame" x="16" y="223" width="327" height="0.0"/>
-                        <attributedString key="attributedText"/>
-                        <nil key="highlightedColor"/>
-                    </label>
-                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qgi-Bv-dD7">
-                        <rect key="frame" x="0.0" y="238" width="359" height="15"/>
-                        <color key="backgroundColor" red="0.95686274509803915" green="0.95686274509803915" blue="0.95686274509803915" alpha="1" colorSpace="calibratedRGB"/>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="15" id="DUt-Ot-ubA"/>
-                        </constraints>
                     </view>
                 </subviews>
+                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                 <constraints>
-                    <constraint firstItem="FWq-QF-ONl" firstAttribute="leading" secondItem="gxd-9e-9Xw" secondAttribute="leading" id="899-PX-c9z"/>
-                    <constraint firstItem="Gkn-L8-UCb" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="9Kn-wt-6ZM"/>
-                    <constraint firstItem="qgi-Bv-dD7" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="AQf-VK-xq2"/>
-                    <constraint firstItem="Fse-Bd-Rui" firstAttribute="leading" secondItem="vad-UL-yLE" secondAttribute="trailing" constant="10" id="Auo-hH-dFI"/>
-                    <constraint firstItem="vad-UL-yLE" firstAttribute="leading" secondItem="2c3-yX-YxS" secondAttribute="leading" id="FWB-OP-dYh"/>
-                    <constraint firstItem="FWq-QF-ONl" firstAttribute="trailing" secondItem="gxd-9e-9Xw" secondAttribute="trailing" id="IgH-yQ-Wdg"/>
-                    <constraint firstItem="FWq-QF-ONl" firstAttribute="top" secondItem="gxd-9e-9Xw" secondAttribute="bottom" constant="13" id="Jzh-fU-2WD"/>
-                    <constraint firstItem="gxd-9e-9Xw" firstAttribute="leading" secondItem="Gkn-L8-UCb" secondAttribute="leading" id="QMn-EB-dFl"/>
-                    <constraint firstAttribute="trailing" secondItem="gxd-9e-9Xw" secondAttribute="trailing" constant="16" id="Qcj-Js-eBU"/>
-                    <constraint firstItem="qgi-Bv-dD7" firstAttribute="top" secondItem="FWq-QF-ONl" secondAttribute="bottom" constant="15" id="U79-q2-z8a"/>
-                    <constraint firstItem="Gv9-px-E4j" firstAttribute="centerY" secondItem="2c3-yX-YxS" secondAttribute="centerY" id="aHL-QK-hTg"/>
-                    <constraint firstAttribute="trailing" secondItem="qgi-Bv-dD7" secondAttribute="trailing" id="dII-Mk-6T4"/>
-                    <constraint firstItem="2c3-yX-YxS" firstAttribute="leading" secondItem="Gkn-L8-UCb" secondAttribute="trailing" constant="11" id="epQ-js-8ZE"/>
-                    <constraint firstAttribute="bottom" secondItem="qgi-Bv-dD7" secondAttribute="bottom" id="fBR-p9-5uz"/>
-                    <constraint firstItem="gxd-9e-9Xw" firstAttribute="top" secondItem="Gkn-L8-UCb" secondAttribute="bottom" constant="18" id="hXb-Zr-nYV"/>
-                    <constraint firstItem="vad-UL-yLE" firstAttribute="top" secondItem="2c3-yX-YxS" secondAttribute="bottom" id="jyh-CF-Uwa"/>
-                    <constraint firstItem="Gkn-L8-UCb" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="15" id="lle-zW-VnC"/>
-                    <constraint firstAttribute="trailing" secondItem="Gv9-px-E4j" secondAttribute="trailing" constant="5" id="mZC-Hv-fUq"/>
-                    <constraint firstItem="Fse-Bd-Rui" firstAttribute="centerY" secondItem="vad-UL-yLE" secondAttribute="centerY" id="qhG-7S-nOn"/>
-                    <constraint firstItem="2c3-yX-YxS" firstAttribute="top" secondItem="Gkn-L8-UCb" secondAttribute="top" constant="8" id="srz-xd-ZmB"/>
+                    <constraint firstItem="qWq-La-TpT" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="3nM-FI-Z4T"/>
+                    <constraint firstAttribute="trailing" secondItem="qWq-La-TpT" secondAttribute="trailing" constant="13" id="4UE-wr-frc"/>
+                    <constraint firstItem="qWq-La-TpT" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="13" id="5XS-Wg-4HZ"/>
+                    <constraint firstAttribute="bottom" secondItem="qWq-La-TpT" secondAttribute="bottom" id="ghz-gf-5wb"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <connections>
                 <outlet property="focusLabel" destination="Fse-Bd-Rui" id="4Bj-LO-Iqv"/>
                 <outlet property="modifyButton" destination="Gv9-px-E4j" id="pCi-TT-AY1"/>
@@ -131,11 +153,14 @@
                 <outlet property="userLogo" destination="Gkn-L8-UCb" id="Gj8-xH-KxL"/>
                 <outlet property="userName" destination="2c3-yX-YxS" id="lOP-EJ-tfh"/>
             </connections>
-            <point key="canvasLocation" x="125.36231884057972" y="191.85267857142856"/>
+            <point key="canvasLocation" x="125.36231884057972" y="207.58928571428569"/>
         </tableViewCell>
     </objects>
     <resources>
         <image name="notice_action" width="24" height="25"/>
         <image name="user_avatarRectangle" width="44" height="44"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
     </resources>
 </document>

+ 2 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Search/KSSearchResultListController.m

@@ -122,6 +122,8 @@ static NSString *const HFId = @"HFId";
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     TUISearchResultCell *cell = [tableView dequeueReusableCellWithIdentifier:Id forIndexPath:indexPath];
+    cell.avatarView.contentMode = UIViewContentModeScaleAspectFill;
+    cell.avatarView.clipsToBounds = YES;
     if (indexPath.row >= self.results.count) {
         return cell;
     }

+ 1 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/Search/KSSearchViewController.m

@@ -101,6 +101,7 @@ static NSString *const HFId = @"HFId";
 - (TUISearchResultCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     TUISearchResultCell *cell = [tableView dequeueReusableCellWithIdentifier:Id forIndexPath:indexPath];
     cell.avatarView.contentMode = UIViewContentModeScaleAspectFill;
+    cell.avatarView.clipsToBounds = YES;
     TUISearchResultModule module = TUISearchResultModuleContact;
     NSArray *results = [self resultForSection:indexPath.section module:&module];
     if (results.count <= indexPath.row) {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Chat/View/TenantGroupCreate/TenantCreateStuView.xib

@@ -19,6 +19,11 @@
                         <constraint firstAttribute="height" constant="45" id="DkF-Xk-vsF"/>
                         <constraint firstAttribute="width" constant="45" id="kpc-HB-NGl"/>
                     </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
                 </imageView>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="陈同学" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VCP-zm-SX7">
                     <rect key="frame" x="18.666666666666671" y="58" width="40" height="18"/>

+ 39 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Home/Controller/HomeViewController.m

@@ -59,6 +59,7 @@
 #import "SmallToolViewController.h"
 #import "InstrumentChooseViewController.h"
 
+#import "HomeTenantView.h"
 
 #import "HomeTenantPageView.h"
 
@@ -137,6 +138,9 @@
 
 @property (nonatomic, assign) CGFloat tenantAlbumHeight;
 
+// 机构名称
+@property (nonatomic, strong) HomeTenantView *tenantNameView;
+
 @end
 
 @implementation HomeViewController
@@ -240,6 +244,7 @@
 - (void)refreshView {
     [self.navView configMessage:self.mineInfo];
     [self.headView configMessage:self.mineInfo];
+    [self refreshTenantNameView];
     [self refreshBannerView];
     [self refreshButtonView];
     [self refreshNotice];
@@ -264,6 +269,22 @@
     }
 }
 
+
+- (void)refreshTenantNameView {
+    CGFloat tenantNameHeight = CGFLOAT_MIN;
+    if (self.mineInfo.tenantId > 0) {
+        tenantNameHeight = [HomeTenantView getViewHeight];
+        self.tenantNameView.hidden = NO;
+    }
+    else {
+        self.tenantNameView.hidden = YES;
+    }
+    [self.tenantNameView mas_updateConstraints:^(MASConstraintMaker *make) {
+        make.height.mas_equalTo(tenantNameHeight);
+    }];
+    [self.tenantNameView configTenantName:self.mineInfo.tenantName];
+}
+
 - (void)refreshTenantBanner {
     
     if (self.mineInfo.tenantAlbumStatus == 0) {
@@ -651,9 +672,19 @@
     }];
     [self.view bringSubviewToFront:self.navView];
     
-    [self.scrollView mas_remakeConstraints:^(MASConstraintMaker *make) {
+    // 名称
+    [self.view addSubview:self.tenantNameView];
+    CGFloat tenantNameHeight = CGFLOAT_MIN;
+    [self.tenantNameView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
         make.top.mas_equalTo(self.navView.mas_bottom);
+        make.height.mas_equalTo(tenantNameHeight);
+    }];
+    self.tenantNameView.hidden = YES;
+    
+    [self.scrollView mas_remakeConstraints:^(MASConstraintMaker *make) {
+        make.left.right.mas_equalTo(self.view);
+        make.top.mas_equalTo(self.tenantNameView.mas_bottom);
         make.bottom.mas_equalTo(self.view.mas_bottom);
     }];
     self.scrollView.backgroundColor = [UIColor clearColor];
@@ -1619,6 +1650,13 @@
     ctrl.url = [NSString stringWithFormat:@"%@%@",WEBHOST,@"/#/train-tool"];
     [self.navigationController pushViewController:ctrl animated:YES];
 }
+
+- (HomeTenantView *)tenantNameView {
+    if (!_tenantNameView) {
+        _tenantNameView = [HomeTenantView shareInstance];
+    }
+    return _tenantNameView;
+}
 /*
 #pragma mark - Navigation
 

+ 7 - 13
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.m

@@ -27,27 +27,21 @@
     return view;
 }
 
+
 - (void)configMessage:(UserInfo *)infoMessage {
-    BOOL isTenant = infoMessage.tenantId > 0 ? YES : NO;
-    if (![NSString isEmptyString:infoMessage.tenantName] && isTenant) {
-        self.nameLabel.text = [NSString stringWithFormat:@"%@%@", infoMessage.tenantName, [NSString returnNoNullStringWithString:infoMessage.username]];
+    
+    if ([NSString isEmptyString:infoMessage.username]) {
+        self.nameLabel.text = [NSString stringWithFormat:@"你好,游客%@",[NSString returnNoNullStringWithString:infoMessage.userId]];
     }
     else {
-        if ([NSString isEmptyString:infoMessage.username]) {
-            self.nameLabel.text = [NSString stringWithFormat:@"你好,游客%@",[NSString returnNoNullStringWithString:infoMessage.userId]];
+        if (infoMessage.username.length > 4) {
+            self.nameLabel.text = infoMessage.username;
         }
         else {
-            if (infoMessage.username.length > 4) {
-                self.nameLabel.text = infoMessage.username;
-            }
-            else {
-                self.nameLabel.text = [NSString stringWithFormat:@"你好,%@",infoMessage.username];
-            }
+            self.nameLabel.text = [NSString stringWithFormat:@"你好,%@",infoMessage.username];
         }
     }
     
-    
-    
     NSString *viperImage = infoMessage.isVip ? @"mine_vip" : @"mine_nomal";
     [self.viperImage setImage:[UIImage imageNamed:viperImage]];
 }

+ 13 - 8
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNavView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -68,14 +68,19 @@
                                 <action selector="scanAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="Gqi-Yj-iGI"/>
                             </connections>
                         </button>
+                        <view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="iHm-QI-SCg">
+                            <rect key="frame" x="14" y="8" width="45" height="27"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                        </view>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xSC-vm-098">
-                            <rect key="frame" x="14" y="8" width="45" height="26.5"/>
-                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="22"/>
+                            <rect key="frame" x="25" y="10" width="41" height="24"/>
+                            <fontDescription key="fontDescription" type="system" weight="semibold" pointSize="20"/>
                             <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="030-NP-gEA">
-                            <rect key="frame" x="65" y="14" width="34" height="15"/>
+                            <rect key="frame" x="72" y="14.5" width="34" height="15"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="15" id="8P2-Ec-bnf"/>
                                 <constraint firstAttribute="width" constant="34" id="PEK-n6-pcq"/>
@@ -90,12 +95,12 @@
                         <constraint firstItem="q6l-Iv-Tbq" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="030-NP-gEA" secondAttribute="trailing" constant="10" id="FJ1-Sk-w0G"/>
                         <constraint firstItem="t1J-uq-ROg" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" constant="10" id="FcH-GF-jbv"/>
                         <constraint firstAttribute="trailing" secondItem="qSz-FE-UVP" secondAttribute="trailing" constant="10" id="Hpm-xn-doL"/>
-                        <constraint firstItem="xSC-vm-098" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" constant="8" id="NCG-sw-gME"/>
                         <constraint firstItem="qSz-FE-UVP" firstAttribute="centerY" secondItem="q6l-Iv-Tbq" secondAttribute="centerY" id="Tpt-zB-iEz"/>
                         <constraint firstItem="030-NP-gEA" firstAttribute="leading" secondItem="xSC-vm-098" secondAttribute="trailing" constant="6" id="X56-N6-R6Q"/>
                         <constraint firstAttribute="height" constant="44" id="cj7-26-Plu"/>
                         <constraint firstItem="qSz-FE-UVP" firstAttribute="top" secondItem="vOh-9c-b3r" secondAttribute="top" id="dgb-Bb-S6e"/>
-                        <constraint firstItem="xSC-vm-098" firstAttribute="leading" secondItem="vOh-9c-b3r" secondAttribute="leading" constant="14" id="twJ-Hw-Msg"/>
+                        <constraint firstItem="q6l-Iv-Tbq" firstAttribute="centerY" secondItem="xSC-vm-098" secondAttribute="centerY" id="haf-Ki-Dhr"/>
+                        <constraint firstItem="xSC-vm-098" firstAttribute="leading" secondItem="vOh-9c-b3r" secondAttribute="leading" constant="25" id="twJ-Hw-Msg"/>
                     </constraints>
                 </view>
             </subviews>
@@ -113,7 +118,7 @@
                 <outlet property="nameLabel" destination="xSC-vm-098" id="zne-RH-aKq"/>
                 <outlet property="viperImage" destination="030-NP-gEA" id="EbE-u1-D15"/>
             </connections>
-            <point key="canvasLocation" x="351.44927536231887" y="-130.58035714285714"/>
+            <point key="canvasLocation" x="350.72463768115944" y="-130.58035714285714"/>
         </view>
     </objects>
     <resources>

+ 11 - 11
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeNewHeadView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -14,7 +14,7 @@
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="G60-Et-o3r">
-                    <rect key="frame" x="14" y="2" width="114" height="23"/>
+                    <rect key="frame" x="24" y="2" width="114" height="23"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineStyle_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="Cdf-rH-nsz">
                             <rect key="frame" x="0.0" y="0.0" width="23" height="23"/>
@@ -58,13 +58,13 @@
                     </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="sUP-ZP-Dxs">
-                    <rect key="frame" x="135" y="5" width="29" height="17"/>
+                    <rect key="frame" x="145" y="5" width="29" height="17"/>
                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                     <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0/4" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GIJ-nK-Ul6">
-                    <rect key="frame" x="170" y="5" width="23" height="17"/>
+                    <rect key="frame" x="180" y="5" width="23" height="17"/>
                     <fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
                     <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
@@ -185,7 +185,7 @@
                     </userDefinedRuntimeAttributes>
                 </view>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="声部:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hbt-Ka-sJd">
-                    <rect key="frame" x="14" y="43" width="45" height="20"/>
+                    <rect key="frame" x="27" y="43" width="45" height="20"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="20" id="6if-aG-kuL"/>
                         <constraint firstAttribute="width" constant="45" id="LTR-WG-Lje"/>
@@ -195,14 +195,14 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="homeSubject_choose" translatesAutoresizingMaskIntoConstraints="NO" id="mcI-xg-AYQ">
-                    <rect key="frame" x="65" y="46" width="14" height="14"/>
+                    <rect key="frame" x="78" y="46" width="14" height="14"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="14" id="Nbq-df-NQ4"/>
                         <constraint firstAttribute="width" constant="14" id="bl8-d1-9nH"/>
                     </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="CVF-vi-Nmp">
-                    <rect key="frame" x="59" y="43" width="0.0" height="20"/>
+                    <rect key="frame" x="72" y="43" width="0.0" height="20"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="20" id="3nK-j6-8Uf"/>
                     </constraints>
@@ -211,7 +211,7 @@
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="n7U-cl-uZy">
-                    <rect key="frame" x="14" y="35.5" width="65" height="35"/>
+                    <rect key="frame" x="27" y="35.5" width="65" height="35"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="35" id="eF1-q5-ExD"/>
                     </constraints>
@@ -243,9 +243,9 @@
                 <constraint firstItem="Eh7-SW-rWW" firstAttribute="centerY" secondItem="nDP-6c-WeM" secondAttribute="centerY" id="YbM-aK-3Wu"/>
                 <constraint firstItem="mcI-xg-AYQ" firstAttribute="trailing" secondItem="n7U-cl-uZy" secondAttribute="trailing" id="YrW-g9-Zeu"/>
                 <constraint firstItem="G60-Et-o3r" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="2" id="e0l-Oj-qcg"/>
-                <constraint firstItem="G60-Et-o3r" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="oxP-IZ-oSI"/>
+                <constraint firstItem="G60-Et-o3r" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="24" id="oxP-IZ-oSI"/>
                 <constraint firstItem="sUP-ZP-Dxs" firstAttribute="leading" secondItem="G60-Et-o3r" secondAttribute="trailing" constant="7" id="qQb-Mw-aPM"/>
-                <constraint firstItem="Hbt-Ka-sJd" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="tx0-2M-Veh"/>
+                <constraint firstItem="Hbt-Ka-sJd" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="27" id="tx0-2M-Veh"/>
                 <constraint firstItem="GIJ-nK-Ul6" firstAttribute="leading" secondItem="sUP-ZP-Dxs" secondAttribute="trailing" constant="6" id="uPv-rF-rzz"/>
                 <constraint firstItem="n7U-cl-uZy" firstAttribute="leading" secondItem="Hbt-Ka-sJd" secondAttribute="leading" id="uQF-Rs-zme"/>
                 <constraint firstItem="K9c-3E-YUK" firstAttribute="bottom" secondItem="Jce-l2-nVi" secondAttribute="top" constant="5" id="y8F-1z-mAK"/>

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeTenantView.h

@@ -0,0 +1,22 @@
+//
+//  HomeTenantView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2023/9/19.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HomeTenantView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)configTenantName:(NSString *)tenantName;
+
++ (CGFloat)getViewHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 38 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeTenantView.m

@@ -0,0 +1,38 @@
+//
+//  HomeTenantView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2023/9/19.
+//
+
+#import "HomeTenantView.h"
+
+@interface HomeTenantView ()
+
+@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
+
+@end
+
+@implementation HomeTenantView
+
++ (instancetype)shareInstance {
+    HomeTenantView *view = [[[NSBundle mainBundle] loadNibNamed:@"HomeTenantView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configTenantName:(NSString *)tenantName {
+    self.nameLabel.text = [NSString returnNoNullStringWithString:tenantName];
+}
+
++ (CGFloat)getViewHeight {
+    return 30.0f;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 74 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/View/HomeTenantView.xib

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <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="HomeTenantView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="30"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qPd-T2-TBH">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="30"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vDn-rU-rd6">
+                            <rect key="frame" x="24.999999999999993" y="1" width="108.33333333333331" height="18"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="武汉市小星星机构" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fY5-wx-V18">
+                                    <rect key="frame" x="5" y="0.0" width="98.333333333333329" height="18"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                    <color key="textColor" red="1" green="0.4823529411764706" blue="0.19215686274509802" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" red="1" green="0.65098039215686276" blue="0.45098039215686275" alpha="0.070000000000000007" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstItem="fY5-wx-V18" firstAttribute="top" secondItem="vDn-rU-rd6" secondAttribute="top" id="7po-ND-cRf"/>
+                                <constraint firstAttribute="bottom" secondItem="fY5-wx-V18" secondAttribute="bottom" id="LSA-fH-vgg"/>
+                                <constraint firstAttribute="trailing" secondItem="fY5-wx-V18" secondAttribute="trailing" constant="5" id="bhR-Zf-X7S"/>
+                                <constraint firstAttribute="height" constant="18" id="ebB-L4-HSd"/>
+                                <constraint firstItem="fY5-wx-V18" firstAttribute="leading" secondItem="vDn-rU-rd6" secondAttribute="leading" constant="5" id="v0n-Pp-kqh"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                                    <color key="value" red="1" green="0.74901960784313726" blue="0.60392156862745094" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                    <real key="value" value="1"/>
+                                </userDefinedRuntimeAttribute>
+                                <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="vDn-rU-rd6" firstAttribute="top" secondItem="qPd-T2-TBH" secondAttribute="top" constant="1" id="3rm-zc-w1T"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="vDn-rU-rd6" secondAttribute="trailing" constant="25" id="Nfi-Aa-h6I"/>
+                        <constraint firstItem="vDn-rU-rd6" firstAttribute="leading" secondItem="qPd-T2-TBH" secondAttribute="leading" constant="25" id="vtO-72-6eC"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="qPd-T2-TBH" secondAttribute="bottom" id="8wq-oa-eoh"/>
+                <constraint firstItem="qPd-T2-TBH" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="CHY-gh-za7"/>
+                <constraint firstItem="qPd-T2-TBH" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="CSO-we-aBM"/>
+                <constraint firstAttribute="trailing" secondItem="qPd-T2-TBH" secondAttribute="trailing" id="NNN-zN-slV"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="nameLabel" destination="fY5-wx-V18" id="qlC-dJ-G2i"/>
+            </connections>
+            <point key="canvasLocation" x="38.931297709923662" y="74.295774647887328"/>
+        </view>
+    </objects>
+</document>

+ 72 - 12
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Controller/MineViewController.m

@@ -36,6 +36,8 @@
 
 #import "BadgeIntroduceView.h"
 #import "CoursewareViewController.h"
+#import "MineDescView.h"
+#import "TenantMineHeadView.h"
 
 @interface MineViewController ()<UIScrollViewDelegate>
 
@@ -43,6 +45,10 @@
 
 @property (nonatomic, strong) MineHeadView *headView;
 
+@property (nonatomic, strong) TenantMineHeadView *tenantHeadView;
+
+@property (nonatomic, strong) MineDescView *descView;
+
 @property (nonatomic, strong) MineFunctionView *normalFunctionView;
 
 @property (nonatomic, strong) MineTeachToolView *teachToolView;
@@ -133,18 +139,17 @@
 
 - (void)refreshBodyView:(BOOL)isMember {
     
-    self.headView.isMember = isMember;
-    CGFloat height = [self.headView getViewHeight];
-    [self.headView mas_updateConstraints:^(MASConstraintMaker *make) {
+    self.descView.isMember = isMember;
+    CGFloat height = [self.descView getViewHeight];
+    [self.descView mas_updateConstraints:^(MASConstraintMaker *make) {
         make.height.mas_equalTo(height);
     }];
+    
     self.normalFunctionView.isMember = isMember;
     self.normalFunctionView.isSettlement = self.mineInfo.isSettlement;
     [self.normalFunctionView configView];
     CGFloat functionHeight = [self.normalFunctionView getViewHeight];
-    [self.normalFunctionView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.top.mas_equalTo(self.headView.mas_bottom).offset(12);
-        make.left.right.mas_equalTo(self.view);
+    [self.normalFunctionView mas_updateConstraints:^(MASConstraintMaker *make) {
         make.height.mas_equalTo(functionHeight);
     }];
     self.teachToolView.isMember = isMember;
@@ -171,7 +176,28 @@
 }
 
 - (void)refreshView {
+    CGFloat headHeight = 0.0f;
+    if (self.mineInfo.tenantId > 0) { // 机构
+        headHeight = [self.tenantHeadView getViewHeight];
+        [self.headView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.height.mas_equalTo(headHeight);
+        }];
+        self.headView.hidden = YES;
+        self.tenantHeadView.hidden = NO;
+    }
+    else { // 平台
+        headHeight = [self.headView getViewHeight];
+        [self.headView mas_updateConstraints:^(MASConstraintMaker *make) {
+            make.height.mas_equalTo(headHeight);
+        }];
+        self.headView.hidden = NO;
+        self.tenantHeadView.hidden = YES;
+    }
+    
     [self.headView configMessage:self.mineInfo];
+    [self.tenantHeadView configMessage:self.mineInfo];
+    
+    [self.descView configMessage:self.mineInfo];
     if ([NSString isEmptyString:self.mineInfo.username]) {
         self.navView.headTitle.text = [NSString stringWithFormat:@"游客%@",self.mineInfo.userId];;
     }
@@ -227,10 +253,26 @@
         make.height.mas_equalTo(headHeight);
     }];
     
+    [self.scrollView addSubview:self.tenantHeadView];
+    [self.tenantHeadView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_equalTo(headView.mas_bottom);
+        make.left.right.mas_equalTo(self.view);
+        make.bottom.mas_equalTo(self.headView.mas_bottom);
+    }];
+    self.tenantHeadView.hidden = YES;
+    
+    [self.scrollView addSubview:self.descView];
+    CGFloat descHeight = [self.descView getViewHeight];
+    [self.descView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.mas_equalTo(self.headView.mas_bottom);
+        make.left.right.mas_equalTo(self.view);
+        make.height.mas_equalTo(descHeight);
+    }];
+    
     [self.scrollView addSubview:self.normalFunctionView];
     CGFloat functionHeight = [self.normalFunctionView getViewHeight];
     [self.normalFunctionView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.top.mas_equalTo(self.headView.mas_bottom).offset(12);
+        make.top.mas_equalTo(self.descView.mas_bottom).offset(12);
         make.left.right.mas_equalTo(self.view);
         make.height.mas_equalTo(functionHeight);
     }];
@@ -549,11 +591,7 @@
 }
 
 - (void)openSettingView {
-    if (@available(iOS 10, *)) {
-        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
-    } else {
-        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
-    }
+    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
 }
 
 - (DeviceCheckView *)checkView {
@@ -583,6 +621,28 @@
     return _headView;
 }
 
+- (TenantMineHeadView *)tenantHeadView {
+    if (!_tenantHeadView) {
+        _tenantHeadView = [TenantMineHeadView shareInstance];
+        MJWeakSelf;
+        [_tenantHeadView operationCallback:^(MINEVIEWTYPE type) {
+            [weakSelf operationAction:type];
+        }];
+    }
+    return _tenantHeadView;
+}
+
+- (MineDescView *)descView {
+    if (!_descView) {
+        _descView = [MineDescView shareInstance];
+        MJWeakSelf;
+        [_descView operationCallback:^(MINEVIEWTYPE type) {
+            [weakSelf operationAction:type];
+        }];
+    }
+    return _descView;
+}
+
 - (MineFunctionView *)normalFunctionView {
     if (!_normalFunctionView) {
         _normalFunctionView = [MineFunctionView shareInstance];

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/TenantUnbindDetailViewController.m

@@ -78,6 +78,24 @@
         
     }];
 }
+
+- (void)backAction {
+    UIViewController *ctrl = nil;
+    for (UIViewController *controller in self.navigationController.viewControllers) {
+        if ([controller isKindOfClass:NSClassFromString(@"SettingViewController")]) {
+            ctrl = controller;
+            break;
+        }
+    }
+    if (ctrl == nil) {
+        [self.navigationController popToRootViewControllerAnimated:YES];
+    }
+    else {
+        [self.navigationController popToViewController:ctrl animated:YES];
+    }
+
+}
+
 /*
 #pragma mark - Navigation
 

+ 8 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/UnbindTenantViewController.m

@@ -11,6 +11,7 @@
 #import "UnbindBottomView.h"
 #import "VeriCheckView.h"
 #import "KSTipsAlert.h"
+#import "TenantUnbindDetailViewController.h" // 产品需求提交成功跳转解绑页面
 
 @interface UnbindTenantViewController ()
 {
@@ -105,7 +106,7 @@
     [KSNetworkingManager tenantUnbindRequest:KS_POST reson:reson code:code success:^(NSDictionary * _Nonnull dic) {
         if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
             [LOADING_MANAGER KSShowMsg:@"提交成功" promptCompletion:^{
-                [self backAction];
+                [self toUnbindDetailView:reson];
             }];
         }
         else {
@@ -116,6 +117,12 @@
     }];
 }
 
+- (void)toUnbindDetailView:(NSString *)reson {
+    TenantUnbindDetailViewController *ctrl = [[TenantUnbindDetailViewController alloc] init];
+    [ctrl configTenantName:self.mineInfo.tenantName desc:reson];
+    [self.navigationController pushViewController:ctrl animated:YES];
+}
+
 - (void)unbindAction {
     if ([NSString isEmptyString:self.bodyView.inputTextView.text]) {
         [LOADING_MANAGER MBShowAUTOHidingInWindow:@"请填写解绑原因"];

+ 27 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineDescView.h

@@ -0,0 +1,27 @@
+//
+//  MineDescView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2023/9/19.
+//
+
+#import <UIKit/UIKit.h>
+#import "UserInfo.h"
+#import "MineActionView.h"
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MineDescView : UIView
+
+@property (nonatomic, assign) BOOL isMember;
+
++ (instancetype)shareInstance;
+
+- (void)operationCallback:(MineViewCallback)callback;
+
+- (CGFloat)getViewHeight;
+
+- (void)configMessage:(UserInfo *)infoMessage;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 96 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineDescView.m

@@ -0,0 +1,96 @@
+//
+//  MineDescView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2023/9/19.
+//
+
+#import "MineDescView.h"
+
+@interface MineDescView ()
+
+@property (weak, nonatomic) IBOutlet UIView *memberView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *memberViewHeight;
+@property (weak, nonatomic) IBOutlet UILabel *memberCountLabel;
+
+@property (weak, nonatomic) IBOutlet UIView *descView;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *descViewHeight;
+
+@property (weak, nonatomic) IBOutlet UILabel *fansCount;
+@property (weak, nonatomic) IBOutlet UILabel *finishCourse;
+@property (weak, nonatomic) IBOutlet UILabel *unfinishCourse;
+
+@property (nonatomic, copy) MineViewCallback callback;
+
+@end
+
+@implementation MineDescView
+
++ (instancetype)shareInstance {
+    MineDescView *view = [[[NSBundle mainBundle] loadNibNamed:@"MineDescView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configMessage:(UserInfo *)infoMessage {
+    self.fansCount.text = [NSString stringWithFormat:@"%.0f",infoMessage.fansNum];
+    self.finishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.expTime];
+    self.unfinishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.unExpTime];
+    self.memberCountLabel.text = [NSString stringWithFormat:@"会员有效期剩余%.0f天",infoMessage.membershipDays];
+}
+
+- (IBAction)fansDetail:(id)sender {
+    if (self.callback) {
+        self.callback(MINEVIEWTYPE_FANS);
+    }
+}
+
+- (IBAction)finishCourse:(id)sender {
+    if (self.callback) {
+        self.callback(MINEVIEWTYPE_FINISHCOURSE);
+    }
+}
+
+- (IBAction)unfinishCourse:(id)sender {
+    if (self.callback) {
+        self.callback(MINEVIEWTYPE_UNFINISHCOURSE);
+    }
+}
+
+- (IBAction)memberDetail:(id)sender {
+    if (self.callback) {
+        self.callback(MINEVIEWTYPE_MEMERCENTER);
+    }
+}
+
+- (void)operationCallback:(MineViewCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (void)setIsMember:(BOOL)isMember {
+    _isMember = isMember;
+    if (_isMember) {
+        self.memberViewHeight.constant = 82.0f;
+        self.memberView.hidden = NO;
+    }
+    else {
+        self.memberViewHeight.constant = 0.0f;
+        self.memberView.hidden = YES;
+    }
+}
+
+- (CGFloat)getViewHeight {
+    return (self.memberViewHeight.constant) / 2 + 10 + self.descViewHeight.constant;
+}
+
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 261 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineDescView.xib

@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <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="MineDescView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="131"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BQE-Gw-O6q">
+                    <rect key="frame" x="20" y="0.0" width="353" height="82"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="member_bg" translatesAutoresizingMaskIntoConstraints="NO" id="DzB-t0-SFA">
+                            <rect key="frame" x="0.0" y="0.0" width="353" height="82"/>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="member_logo" translatesAutoresizingMaskIntoConstraints="NO" id="DEK-2J-hc1">
+                            <rect key="frame" x="20" y="18" width="19" height="18"/>
+                        </imageView>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="会员有效期剩余xx天" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kH6-Vs-sec">
+                            <rect key="frame" x="47" y="18.666666666666668" width="129" height="17.000000000000004"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                            <color key="textColor" red="0.49803921569999998" green="0.41960784309999999" blue="0.2470588235" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9O7-Xb-0Z9">
+                            <rect key="frame" x="263" y="14" width="74" height="26"/>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="74" id="H9i-xX-fBT"/>
+                                <constraint firstAttribute="height" constant="26" id="xcc-hQ-Wnb"/>
+                            </constraints>
+                            <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" image="member_center"/>
+                            <connections>
+                                <action selector="memberDetail:" destination="iN0-l3-epB" eventType="touchUpInside" id="qDA-M1-CrV"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="DEK-2J-hc1" firstAttribute="top" secondItem="BQE-Gw-O6q" secondAttribute="top" constant="18" id="CwV-bH-pBx"/>
+                        <constraint firstItem="kH6-Vs-sec" firstAttribute="leading" secondItem="DEK-2J-hc1" secondAttribute="trailing" constant="8" id="DBO-Ly-GAg"/>
+                        <constraint firstAttribute="bottom" secondItem="DzB-t0-SFA" secondAttribute="bottom" id="EHa-qc-M7o"/>
+                        <constraint firstAttribute="trailing" secondItem="DzB-t0-SFA" secondAttribute="trailing" id="IFA-xk-bZh"/>
+                        <constraint firstItem="DEK-2J-hc1" firstAttribute="leading" secondItem="BQE-Gw-O6q" secondAttribute="leading" constant="20" id="JCN-U0-obJ"/>
+                        <constraint firstItem="DzB-t0-SFA" firstAttribute="top" secondItem="BQE-Gw-O6q" secondAttribute="top" id="VTD-7s-eLe"/>
+                        <constraint firstItem="kH6-Vs-sec" firstAttribute="centerY" secondItem="DEK-2J-hc1" secondAttribute="centerY" id="Xb3-g0-FDv"/>
+                        <constraint firstAttribute="trailing" secondItem="9O7-Xb-0Z9" secondAttribute="trailing" constant="16" id="dvG-ia-H1f"/>
+                        <constraint firstAttribute="height" constant="82" id="gbV-Kr-Uh3"/>
+                        <constraint firstItem="DzB-t0-SFA" firstAttribute="leading" secondItem="BQE-Gw-O6q" secondAttribute="leading" id="oN9-bU-Pf6"/>
+                        <constraint firstItem="9O7-Xb-0Z9" firstAttribute="centerY" secondItem="kH6-Vs-sec" secondAttribute="centerY" id="v09-a0-U3o"/>
+                    </constraints>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zdM-qB-RVf">
+                    <rect key="frame" x="14" y="51" width="365" height="80"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CH9-kh-Vhd">
+                            <rect key="frame" x="0.0" y="0.0" width="121.66666666666667" height="80"/>
+                            <subviews>
+                                <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Spl-vz-Jvn">
+                                    <rect key="frame" x="0.0" y="15" width="121.66666666666667" height="26"/>
+                                    <gestureRecognizers/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="26" id="WAt-cX-5nk"/>
+                                    </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="R64-PR-fy0">
+                                    <rect key="frame" x="121.33333333333334" y="28" width="0.3333333333333286" 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="SkX-f4-xB7"/>
+                                        <constraint firstAttribute="height" constant="24" id="wSF-uX-Ikj"/>
+                                    </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="iVf-Hk-sRz">
+                                    <rect key="frame" x="46.333333333333336" y="42" width="29.333333333333336" height="28"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="28" id="IUt-gB-2hx"/>
+                                    </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="R64-PR-fy0" secondAttribute="trailing" id="3wE-Ld-1TW"/>
+                                <constraint firstItem="Spl-vz-Jvn" firstAttribute="leading" secondItem="CH9-kh-Vhd" secondAttribute="leading" id="ggT-me-EAQ"/>
+                                <constraint firstAttribute="trailing" secondItem="Spl-vz-Jvn" secondAttribute="trailing" id="mhh-98-M91"/>
+                                <constraint firstAttribute="bottom" secondItem="iVf-Hk-sRz" secondAttribute="bottom" constant="10" id="qgJ-kc-R7h"/>
+                                <constraint firstItem="iVf-Hk-sRz" firstAttribute="centerX" secondItem="Spl-vz-Jvn" secondAttribute="centerX" id="xL8-Co-wnS"/>
+                                <constraint firstItem="R64-PR-fy0" firstAttribute="centerY" secondItem="CH9-kh-Vhd" secondAttribute="centerY" id="zmQ-7L-JiJ"/>
+                                <constraint firstItem="iVf-Hk-sRz" firstAttribute="top" secondItem="Spl-vz-Jvn" secondAttribute="bottom" constant="1" id="zqS-1d-veD"/>
+                            </constraints>
+                            <connections>
+                                <outletCollection property="gestureRecognizers" destination="Pky-1E-4xN" appends="YES" id="Bvv-TP-cP4"/>
+                            </connections>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="63P-Ho-gSm">
+                            <rect key="frame" x="121.66666666666666" y="0.0" width="121.66666666666666" height="80"/>
+                            <subviews>
+                                <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nhB-Xj-YjL">
+                                    <rect key="frame" x="0.0" y="15" width="121.66666666666667" height="26"/>
+                                    <gestureRecognizers/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="26" id="u3O-kJ-Tgj"/>
+                                    </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="J7I-Cn-PYx">
+                                    <rect key="frame" x="32" y="42" width="58" height="28"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="28" id="dyY-cL-gBu"/>
+                                    </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="9pn-33-0IT">
+                                    <rect key="frame" x="121.33333333333334" y="28" width="0.3333333333333286" 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="1Uk-QK-Koi"/>
+                                        <constraint firstAttribute="width" constant="0.5" id="Cn9-QG-6gg"/>
+                                    </constraints>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <gestureRecognizers/>
+                            <constraints>
+                                <constraint firstItem="J7I-Cn-PYx" firstAttribute="top" secondItem="nhB-Xj-YjL" secondAttribute="bottom" constant="1" id="1fk-fz-GHO"/>
+                                <constraint firstItem="9pn-33-0IT" firstAttribute="centerY" secondItem="63P-Ho-gSm" secondAttribute="centerY" id="Psk-4o-hK3"/>
+                                <constraint firstAttribute="trailing" secondItem="9pn-33-0IT" secondAttribute="trailing" id="V4x-eR-quP"/>
+                                <constraint firstItem="nhB-Xj-YjL" firstAttribute="leading" secondItem="63P-Ho-gSm" secondAttribute="leading" id="gCG-Os-C9O"/>
+                                <constraint firstAttribute="trailing" secondItem="nhB-Xj-YjL" secondAttribute="trailing" id="iA8-zk-KZz"/>
+                                <constraint firstItem="J7I-Cn-PYx" firstAttribute="centerX" secondItem="nhB-Xj-YjL" secondAttribute="centerX" id="iWV-gh-ErR"/>
+                                <constraint firstAttribute="bottom" secondItem="J7I-Cn-PYx" secondAttribute="bottom" constant="10" id="zBT-Hp-Mli"/>
+                            </constraints>
+                            <connections>
+                                <outletCollection property="gestureRecognizers" destination="Zvf-mI-yKZ" appends="YES" id="dfa-pw-m3M"/>
+                            </connections>
+                        </view>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iau-ek-3mH">
+                            <rect key="frame" x="243.33333333333329" y="0.0" width="121.66666666666666" height="80"/>
+                            <subviews>
+                                <label opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B1O-8o-mHT">
+                                    <rect key="frame" x="0.0" y="15" width="121.66666666666667" height="26"/>
+                                    <gestureRecognizers/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="26" id="Guw-rJ-vJQ"/>
+                                    </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="oSM-bE-vI4">
+                                    <rect key="frame" x="32" y="42" width="58" height="28"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="28" id="zTj-JW-wUz"/>
+                                    </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="bottom" secondItem="oSM-bE-vI4" secondAttribute="bottom" constant="10" id="D6R-br-HDs"/>
+                                <constraint firstItem="oSM-bE-vI4" firstAttribute="top" secondItem="B1O-8o-mHT" secondAttribute="bottom" constant="1" id="Vyb-Ia-tr6"/>
+                                <constraint firstItem="oSM-bE-vI4" firstAttribute="centerX" secondItem="B1O-8o-mHT" secondAttribute="centerX" id="bea-9g-FJz"/>
+                                <constraint firstItem="B1O-8o-mHT" firstAttribute="leading" secondItem="iau-ek-3mH" secondAttribute="leading" id="eaY-CX-ewz"/>
+                                <constraint firstAttribute="trailing" secondItem="B1O-8o-mHT" secondAttribute="trailing" id="m3s-9u-vTF"/>
+                            </constraints>
+                            <connections>
+                                <outletCollection property="gestureRecognizers" destination="fpF-ab-roh" appends="YES" id="AW4-9F-XZ0"/>
+                            </connections>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="CH9-kh-Vhd" secondAttribute="bottom" id="2W5-kQ-fVj"/>
+                        <constraint firstAttribute="height" constant="80" id="34I-9w-Edk"/>
+                        <constraint firstItem="iau-ek-3mH" firstAttribute="width" secondItem="CH9-kh-Vhd" secondAttribute="width" id="AVb-Yv-aps"/>
+                        <constraint firstItem="iau-ek-3mH" firstAttribute="leading" secondItem="63P-Ho-gSm" secondAttribute="trailing" id="AnF-67-yhp"/>
+                        <constraint firstItem="63P-Ho-gSm" firstAttribute="leading" secondItem="CH9-kh-Vhd" secondAttribute="trailing" id="EoP-9M-Kva"/>
+                        <constraint firstItem="CH9-kh-Vhd" firstAttribute="top" secondItem="zdM-qB-RVf" secondAttribute="top" id="INo-qV-5Km"/>
+                        <constraint firstAttribute="bottom" secondItem="63P-Ho-gSm" secondAttribute="bottom" id="KhB-vw-WqL"/>
+                        <constraint firstAttribute="bottom" secondItem="iau-ek-3mH" secondAttribute="bottom" id="UEN-Nc-Z70"/>
+                        <constraint firstItem="CH9-kh-Vhd" firstAttribute="leading" secondItem="zdM-qB-RVf" secondAttribute="leading" id="kq1-Bo-hWt"/>
+                        <constraint firstItem="63P-Ho-gSm" firstAttribute="width" secondItem="CH9-kh-Vhd" secondAttribute="width" id="nrt-g3-js6"/>
+                        <constraint firstItem="iau-ek-3mH" firstAttribute="top" secondItem="zdM-qB-RVf" secondAttribute="top" id="rWf-Qe-i6f"/>
+                        <constraint firstItem="63P-Ho-gSm" firstAttribute="top" secondItem="zdM-qB-RVf" secondAttribute="top" id="tjr-5V-R1i"/>
+                        <constraint firstAttribute="trailing" secondItem="iau-ek-3mH" secondAttribute="trailing" id="xXz-PT-awu"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="8"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="zdM-qB-RVf" secondAttribute="trailing" constant="14" id="1c1-SL-6cN"/>
+                <constraint firstAttribute="trailing" secondItem="BQE-Gw-O6q" secondAttribute="trailing" constant="20" id="1mf-r4-9g3"/>
+                <constraint firstItem="zdM-qB-RVf" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="4uh-ND-Vf9"/>
+                <constraint firstItem="zdM-qB-RVf" firstAttribute="top" secondItem="BQE-Gw-O6q" secondAttribute="centerY" constant="10" id="BbK-K6-30W"/>
+                <constraint firstItem="BQE-Gw-O6q" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Bvp-hL-ZxV"/>
+                <constraint firstItem="BQE-Gw-O6q" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" id="vLo-Gr-jOI"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="descView" destination="zdM-qB-RVf" id="EvF-53-oid"/>
+                <outlet property="descViewHeight" destination="34I-9w-Edk" id="x2o-PF-Aag"/>
+                <outlet property="fansCount" destination="Spl-vz-Jvn" id="kFk-wZ-9A1"/>
+                <outlet property="finishCourse" destination="nhB-Xj-YjL" id="uRJ-1f-zs8"/>
+                <outlet property="memberCountLabel" destination="kH6-Vs-sec" id="hQE-Uf-YBH"/>
+                <outlet property="memberView" destination="BQE-Gw-O6q" id="yyP-cm-2Hg"/>
+                <outlet property="memberViewHeight" destination="gbV-Kr-Uh3" id="LNZ-SO-DqU"/>
+                <outlet property="unfinishCourse" destination="B1O-8o-mHT" id="eIb-yc-93O"/>
+            </connections>
+            <point key="canvasLocation" x="38.931297709923662" y="-265.14084507042253"/>
+        </view>
+        <tapGestureRecognizer id="Pky-1E-4xN">
+            <connections>
+                <action selector="fansDetail:" destination="iN0-l3-epB" id="5da-IU-8PZ"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="Zvf-mI-yKZ">
+            <connections>
+                <action selector="finishCourse:" destination="iN0-l3-epB" id="7Ex-6b-aRa"/>
+            </connections>
+        </tapGestureRecognizer>
+        <tapGestureRecognizer id="fpF-ab-roh">
+            <connections>
+                <action selector="unfinishCourse:" destination="iN0-l3-epB" id="az9-6g-cD8"/>
+            </connections>
+        </tapGestureRecognizer>
+    </objects>
+    <resources>
+        <image name="member_bg" width="334" height="82"/>
+        <image name="member_center" width="74" height="26"/>
+        <image name="member_logo" width="19" height="18"/>
+    </resources>
+</document>

+ 0 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.h

@@ -13,8 +13,6 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MineHeadView : UIView
 
-@property (nonatomic, assign) BOOL isMember;
-
 + (instancetype)shareInstance;
 
 - (void)operationCallback:(MineViewCallback)callback;

+ 6 - 58
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.m

@@ -9,24 +9,16 @@
 #import "KSStarView.h"
 
 @interface MineHeadView ()
+
 @property (weak, nonatomic) IBOutlet UILabel *userName;
 
-@property (weak, nonatomic) IBOutlet UILabel *memberCountLabel;
 @property (weak, nonatomic) IBOutlet UIImageView *userAvatal;
-@property (weak, nonatomic) IBOutlet UIView *descView;
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *descViewHeight;
-
-@property (weak, nonatomic) IBOutlet UILabel *fansCount;
-@property (weak, nonatomic) IBOutlet UILabel *finishCourse;
-@property (weak, nonatomic) IBOutlet UILabel *unfinishCourse;
 
 @property (nonatomic, copy) MineViewCallback callback;
 
-@property (weak, nonatomic) IBOutlet UIView *memberView;
 
 @property (weak, nonatomic) IBOutlet KSStarView *starView;
 
-@property (weak, nonatomic) IBOutlet NSLayoutConstraint *memberViewHeight;
 
 @property (weak, nonatomic) IBOutlet UIImageView *viperImage;
 @property (weak, nonatomic) IBOutlet UIImageView *styleImage;
@@ -114,10 +106,6 @@
         }
     }
     
-    self.fansCount.text = [NSString stringWithFormat:@"%.0f",infoMessage.fansNum];
-    self.finishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.expTime];
-    self.unfinishCourse.text = [NSString stringWithFormat:@"%.0f",infoMessage.unExpTime];
-    
     self.starView.rate = infoMessage.starGrade / 5.0f;
     
     if (![NSString isEmptyString:infoMessage.heardUrl]) {
@@ -126,21 +114,13 @@
     else {
         [self.userAvatal setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
     }
-    BOOL isTenant = infoMessage.tenantId > 0 ? YES : NO;
-    if (![NSString isEmptyString:infoMessage.tenantName] && isTenant) {
-        self.userName.text = [NSString stringWithFormat:@"%@%@", infoMessage.tenantName, [NSString returnNoNullStringWithString:infoMessage.username]];
+    
+    if ([NSString isEmptyString:infoMessage.username]) {
+        self.userName.text = [NSString stringWithFormat:@"游客%@",[NSString returnNoNullStringWithString:infoMessage.userId]];
     }
     else {
-        if ([NSString isEmptyString:infoMessage.username]) {
-            self.userName.text = [NSString stringWithFormat:@"游客%@",[NSString returnNoNullStringWithString:infoMessage.userId]];
-        }
-        else {
-            self.userName.text = infoMessage.username;
-        }
+        self.userName.text = infoMessage.username;
     }
-    
-    
-    self.memberCountLabel.text = [NSString stringWithFormat:@"会员有效期剩余%.0f天",infoMessage.membershipDays];
 }
 
 - (void)operationCallback:(MineViewCallback)callback {
@@ -155,40 +135,8 @@
     }
 }
 
-- (IBAction)fansDetail:(id)sender {
-    if (self.callback) {
-        self.callback(MINEVIEWTYPE_FANS);
-    }
-}
-
-- (IBAction)finishCourse:(id)sender {
-    if (self.callback) {
-        self.callback(MINEVIEWTYPE_FINISHCOURSE);
-    }
-}
 
-- (IBAction)unfinishCourse:(id)sender {
-    if (self.callback) {
-        self.callback(MINEVIEWTYPE_UNFINISHCOURSE);
-    }
-}
-- (IBAction)memberDetail:(id)sender {
-    if (self.callback) {
-        self.callback(MINEVIEWTYPE_MEMERCENTER);
-    }
-}
 
-- (void)setIsMember:(BOOL)isMember {
-    _isMember = isMember;
-    if (_isMember) {
-        self.memberViewHeight.constant = 82.0f;
-        self.memberView.hidden = NO;
-    }
-    else {
-        self.memberViewHeight.constant = 0.0f;
-        self.memberView.hidden = YES;
-    }
-}
 - (IBAction)showIntroduceAlert:(id)sender {
     if (self.callback) {
         self.callback(MINEVIEWTYPE_SHOWDESC);
@@ -196,7 +144,7 @@
 }
 
 - (CGFloat)getViewHeight {
-    return 70 + 13 + (self.memberViewHeight.constant) / 2 + 10 + self.descViewHeight.constant;
+    return 110 + 13;
 }
 /*
 // Only override drawRect: if you perform custom drawing.

+ 17 - 248
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineHeadView.xib

@@ -1,20 +1,20 @@
 <?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">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
         <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="MineHeadView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="210"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="110"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cjp-6k-puJ">
-                    <rect key="frame" x="0.0" y="0.0" width="414" height="70"/>
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="110"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="Qfc-m1-p6a">
                             <rect key="frame" x="15" y="5" width="60" height="60"/>
@@ -35,19 +35,19 @@
                             </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">
-                            <rect key="frame" x="85" y="11" width="41" height="24"/>
+                            <rect key="frame" x="85" y="23" width="41" height="24"/>
                             <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
                             <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" 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="bTO-A2-pYt">
-                            <rect key="frame" x="231" y="52" width="37" height="15"/>
+                            <rect key="frame" x="263" y="87.5" 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="50" width="95" height="19"/>
+                            <rect key="frame" x="300" y="85.5" 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"/>
@@ -72,7 +72,7 @@
                             </connections>
                         </button>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1mz-7i-YiM">
-                            <rect key="frame" x="122" y="47.5" width="84" height="24"/>
+                            <rect key="frame" x="60" y="83" 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"/>
@@ -116,20 +116,20 @@
                             </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"/>
+                            <rect key="frame" x="23" y="87.5" 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"/>
+                            <rect key="frame" x="135" y="27" 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"/>
+                            <rect key="frame" x="180" y="27" width="39" height="16"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="16" id="YnY-gE-hGc"/>
                                 <constraint firstAttribute="width" constant="39" id="hbp-cI-NEE"/>
@@ -147,240 +147,35 @@
                     <gestureRecognizers/>
                     <constraints>
                         <constraint firstItem="fw3-T6-lx2" firstAttribute="centerY" secondItem="bTO-A2-pYt" secondAttribute="centerY" id="1aL-kd-pqb"/>
-                        <constraint firstItem="QPn-ge-mEt" firstAttribute="top" secondItem="Qfc-m1-p6a" secondAttribute="top" constant="6" id="7lO-u5-M6d"/>
+                        <constraint firstItem="cgZ-9q-1D4" firstAttribute="leading" secondItem="Cjp-6k-puJ" secondAttribute="leading" constant="23" id="2yG-gq-B1l"/>
                         <constraint firstItem="W7w-Qv-jgO" firstAttribute="centerX" secondItem="Qfc-m1-p6a" secondAttribute="centerX" id="8zp-MH-1VC"/>
+                        <constraint firstItem="cgZ-9q-1D4" firstAttribute="top" secondItem="W7w-Qv-jgO" secondAttribute="bottom" constant="15" id="AmA-CJ-dyH"/>
                         <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="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="Qfc-m1-p6a" secondAttribute="bottom" id="T73-hP-tAc"/>
-                        <constraint firstAttribute="height" constant="70" id="Zrl-wR-XDP"/>
+                        <constraint firstItem="QPn-ge-mEt" firstAttribute="centerY" secondItem="v0U-gH-2rd" secondAttribute="centerY" id="Zfa-ZF-11e"/>
+                        <constraint firstAttribute="height" constant="110" 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="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 firstAttribute="trailing" secondItem="fw3-T6-lx2" secondAttribute="trailing" constant="19" id="yMT-9h-AWU"/>
                         <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">
-                    <rect key="frame" x="20" y="83" width="374" height="82"/>
-                    <subviews>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="member_bg" translatesAutoresizingMaskIntoConstraints="NO" id="vem-fC-2yM">
-                            <rect key="frame" x="0.0" y="0.0" width="374" height="82"/>
-                        </imageView>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="member_logo" translatesAutoresizingMaskIntoConstraints="NO" id="8T2-yK-UdK">
-                            <rect key="frame" x="20" y="18" width="19" height="18"/>
-                        </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="会员有效期剩余xx天" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZuM-Bk-fld">
-                            <rect key="frame" x="47" y="18.5" width="129" height="17"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.49803921568627452" green="0.41960784313725491" blue="0.24705882352941178" alpha="1" colorSpace="calibratedRGB"/>
-                            <nil key="highlightedColor"/>
-                        </label>
-                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e9i-eM-oqa">
-                            <rect key="frame" x="284" y="14" width="74" height="26"/>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="26" id="Pay-BA-uly"/>
-                                <constraint firstAttribute="width" constant="74" id="Vdn-GS-I9r"/>
-                            </constraints>
-                            <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" image="member_center"/>
-                            <connections>
-                                <action selector="memberDetail:" destination="iN0-l3-epB" eventType="touchUpInside" id="1kt-bz-8xv"/>
-                            </connections>
-                        </button>
-                    </subviews>
-                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    <constraints>
-                        <constraint firstItem="8T2-yK-UdK" firstAttribute="leading" secondItem="bnm-Xd-HxI" secondAttribute="leading" constant="20" id="1K0-GH-E9s"/>
-                        <constraint firstItem="ZuM-Bk-fld" firstAttribute="centerY" secondItem="8T2-yK-UdK" secondAttribute="centerY" id="4vW-vp-Eed"/>
-                        <constraint firstAttribute="trailing" secondItem="e9i-eM-oqa" secondAttribute="trailing" constant="16" id="B9q-t3-wki"/>
-                        <constraint firstItem="vem-fC-2yM" firstAttribute="top" secondItem="bnm-Xd-HxI" secondAttribute="top" id="Esp-P8-iTm"/>
-                        <constraint firstItem="ZuM-Bk-fld" firstAttribute="leading" secondItem="8T2-yK-UdK" secondAttribute="trailing" constant="8" id="HvY-IU-n5b"/>
-                        <constraint firstItem="vem-fC-2yM" firstAttribute="leading" secondItem="bnm-Xd-HxI" secondAttribute="leading" id="PUR-5u-fub"/>
-                        <constraint firstAttribute="trailing" secondItem="vem-fC-2yM" secondAttribute="trailing" id="aeM-Uc-bB6"/>
-                        <constraint firstAttribute="height" constant="82" id="fZv-vF-MvF"/>
-                        <constraint firstItem="e9i-eM-oqa" firstAttribute="centerY" secondItem="ZuM-Bk-fld" secondAttribute="centerY" id="hXx-0u-WNx"/>
-                        <constraint firstItem="8T2-yK-UdK" firstAttribute="top" secondItem="bnm-Xd-HxI" secondAttribute="top" constant="18" id="khC-IV-L70"/>
-                        <constraint firstAttribute="bottom" secondItem="vem-fC-2yM" secondAttribute="bottom" id="zhx-lm-M6B"/>
-                    </constraints>
-                </view>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eNq-kC-Uni">
-                    <rect key="frame" x="14" y="134" width="386" height="80"/>
-                    <subviews>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XZP-f4-Qyr">
-                            <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="0Jy-fH-DYe">
-                                    <rect key="frame" x="0.0" y="15" width="128.5" height="26"/>
-                                    <gestureRecognizers/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="26" id="Ty0-02-BRS"/>
-                                    </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="XU2-gc-LWa">
-                                    <rect key="frame" x="128" y="28" width="0.5" height="24"/>
-                                    <color key="backgroundColor" red="0.91764705882352937" green="0.91764705882352937" blue="0.91764705882352937" alpha="1" colorSpace="calibratedRGB"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="24" id="6mA-vD-tHK"/>
-                                        <constraint firstAttribute="width" constant="0.5" id="7cm-MI-5fL"/>
-                                    </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="bFi-2b-uPi">
-                                    <rect key="frame" x="50" y="42" width="29" height="28"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="28" id="kox-CP-gbx"/>
-                                    </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 firstItem="bFi-2b-uPi" firstAttribute="centerX" secondItem="0Jy-fH-DYe" secondAttribute="centerX" id="2ta-S1-aLc"/>
-                                <constraint firstItem="bFi-2b-uPi" firstAttribute="top" secondItem="0Jy-fH-DYe" secondAttribute="bottom" constant="1" id="2uJ-1K-aFd"/>
-                                <constraint firstAttribute="bottom" secondItem="bFi-2b-uPi" secondAttribute="bottom" constant="10" id="Hfd-b7-dOu"/>
-                                <constraint firstItem="0Jy-fH-DYe" firstAttribute="leading" secondItem="XZP-f4-Qyr" secondAttribute="leading" id="i4T-I9-i9A"/>
-                                <constraint firstItem="XU2-gc-LWa" firstAttribute="centerY" secondItem="XZP-f4-Qyr" secondAttribute="centerY" id="jk6-nK-kgx"/>
-                                <constraint firstAttribute="trailing" secondItem="XU2-gc-LWa" secondAttribute="trailing" id="wRt-Jt-DnO"/>
-                                <constraint firstAttribute="trailing" secondItem="0Jy-fH-DYe" secondAttribute="trailing" id="wsl-UY-qDG"/>
-                            </constraints>
-                            <connections>
-                                <outletCollection property="gestureRecognizers" destination="fMR-WV-TaM" appends="YES" id="HzK-jU-imx"/>
-                            </connections>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mb8-sL-uZu">
-                            <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="biK-ZQ-myM">
-                                    <rect key="frame" x="0.0" y="15" width="129" height="26"/>
-                                    <gestureRecognizers/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="26" id="nG4-wz-Sgv"/>
-                                    </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="lQf-er-z4I">
-                                    <rect key="frame" x="35.5" y="42" width="58" height="28"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="28" id="1bT-tJ-D4V"/>
-                                    </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="wXD-9J-D1O">
-                                    <rect key="frame" x="128.5" y="28" width="0.5" height="24"/>
-                                    <color key="backgroundColor" red="0.91764705882352937" green="0.91764705882352937" blue="0.91764705882352937" alpha="1" colorSpace="calibratedRGB"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="24" id="80n-dp-8Pu"/>
-                                        <constraint firstAttribute="width" constant="0.5" id="rWT-Tu-apa"/>
-                                    </constraints>
-                                </view>
-                            </subviews>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <gestureRecognizers/>
-                            <constraints>
-                                <constraint firstItem="biK-ZQ-myM" firstAttribute="leading" secondItem="Mb8-sL-uZu" secondAttribute="leading" id="2tj-iP-lhJ"/>
-                                <constraint firstItem="lQf-er-z4I" firstAttribute="centerX" secondItem="biK-ZQ-myM" secondAttribute="centerX" id="4wx-fT-ifp"/>
-                                <constraint firstItem="wXD-9J-D1O" firstAttribute="centerY" secondItem="Mb8-sL-uZu" secondAttribute="centerY" id="5Nu-2L-if4"/>
-                                <constraint firstAttribute="trailing" secondItem="wXD-9J-D1O" secondAttribute="trailing" id="62p-sV-9hc"/>
-                                <constraint firstItem="lQf-er-z4I" firstAttribute="top" secondItem="biK-ZQ-myM" secondAttribute="bottom" constant="1" id="MZa-Qk-2RG"/>
-                                <constraint firstAttribute="bottom" secondItem="lQf-er-z4I" secondAttribute="bottom" constant="10" id="Pow-Aq-k3I"/>
-                                <constraint firstAttribute="trailing" secondItem="biK-ZQ-myM" secondAttribute="trailing" id="rto-wg-SPY"/>
-                            </constraints>
-                            <connections>
-                                <outletCollection property="gestureRecognizers" destination="isT-i5-NcG" appends="YES" id="AZy-LN-7SD"/>
-                            </connections>
-                        </view>
-                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Pum-gh-d9U">
-                            <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="Xtn-XA-AzX">
-                                    <rect key="frame" x="0.0" y="15" width="128.5" height="26"/>
-                                    <gestureRecognizers/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="26" id="DnU-M3-SVf"/>
-                                    </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="mD6-W4-XP8">
-                                    <rect key="frame" x="35" y="42" width="58" height="28"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="28" id="mKm-dK-VCB"/>
-                                    </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 firstItem="Xtn-XA-AzX" firstAttribute="leading" secondItem="Pum-gh-d9U" secondAttribute="leading" id="80Q-5O-e1K"/>
-                                <constraint firstItem="mD6-W4-XP8" firstAttribute="centerX" secondItem="Xtn-XA-AzX" secondAttribute="centerX" id="93S-XY-5Md"/>
-                                <constraint firstAttribute="bottom" secondItem="mD6-W4-XP8" secondAttribute="bottom" constant="10" id="gzZ-IQ-k9M"/>
-                                <constraint firstItem="mD6-W4-XP8" firstAttribute="top" secondItem="Xtn-XA-AzX" secondAttribute="bottom" constant="1" id="pDG-AE-tKe"/>
-                                <constraint firstAttribute="trailing" secondItem="Xtn-XA-AzX" secondAttribute="trailing" id="zZN-Re-ToB"/>
-                            </constraints>
-                            <connections>
-                                <outletCollection property="gestureRecognizers" destination="fhm-qk-tgl" appends="YES" id="wSC-xl-ccf"/>
-                            </connections>
-                        </view>
-                    </subviews>
-                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                    <constraints>
-                        <constraint firstItem="Mb8-sL-uZu" firstAttribute="width" secondItem="XZP-f4-Qyr" secondAttribute="width" id="Bor-DR-rDY"/>
-                        <constraint firstItem="Pum-gh-d9U" firstAttribute="leading" secondItem="Mb8-sL-uZu" secondAttribute="trailing" id="EgB-wO-fdT"/>
-                        <constraint firstAttribute="bottom" secondItem="Mb8-sL-uZu" secondAttribute="bottom" id="GD1-KE-yac"/>
-                        <constraint firstAttribute="bottom" secondItem="XZP-f4-Qyr" secondAttribute="bottom" id="I21-zZ-hFS"/>
-                        <constraint firstItem="Mb8-sL-uZu" firstAttribute="leading" secondItem="XZP-f4-Qyr" secondAttribute="trailing" id="Kuf-G6-egO"/>
-                        <constraint firstAttribute="trailing" secondItem="Pum-gh-d9U" secondAttribute="trailing" id="P6A-Cs-7Of"/>
-                        <constraint firstItem="XZP-f4-Qyr" firstAttribute="top" secondItem="eNq-kC-Uni" secondAttribute="top" id="QXs-rx-Gxl"/>
-                        <constraint firstItem="Pum-gh-d9U" firstAttribute="top" secondItem="eNq-kC-Uni" secondAttribute="top" id="d0f-EP-HFh"/>
-                        <constraint firstItem="Mb8-sL-uZu" firstAttribute="top" secondItem="eNq-kC-Uni" secondAttribute="top" id="eza-rQ-BEb"/>
-                        <constraint firstItem="Pum-gh-d9U" firstAttribute="width" secondItem="XZP-f4-Qyr" secondAttribute="width" id="ixd-ZW-hFC"/>
-                        <constraint firstItem="XZP-f4-Qyr" firstAttribute="leading" secondItem="eNq-kC-Uni" secondAttribute="leading" id="oXV-79-hYU"/>
-                        <constraint firstAttribute="bottom" secondItem="Pum-gh-d9U" secondAttribute="bottom" id="s8L-8R-Zh1"/>
-                        <constraint firstAttribute="height" constant="80" id="yWy-7x-S8I"/>
-                    </constraints>
-                    <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="8"/>
-                        </userDefinedRuntimeAttribute>
-                    </userDefinedRuntimeAttributes>
-                </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstAttribute="trailing" secondItem="eNq-kC-Uni" secondAttribute="trailing" constant="14" id="5OT-Zu-O6L"/>
                 <constraint firstAttribute="trailing" secondItem="Cjp-6k-puJ" secondAttribute="trailing" id="6qD-oi-V6l"/>
-                <constraint firstItem="bnm-Xd-HxI" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" id="Buw-8i-mCH"/>
-                <constraint firstItem="eNq-kC-Uni" firstAttribute="top" secondItem="bnm-Xd-HxI" secondAttribute="centerY" constant="10" id="RX8-K7-vwo"/>
-                <constraint firstItem="eNq-kC-Uni" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="ZZv-fl-jra"/>
-                <constraint firstItem="bnm-Xd-HxI" firstAttribute="top" secondItem="Cjp-6k-puJ" secondAttribute="bottom" constant="13" id="fz5-5c-1Iz"/>
-                <constraint firstAttribute="trailing" secondItem="bnm-Xd-HxI" secondAttribute="trailing" constant="20" id="hfx-fP-yBd"/>
                 <constraint firstItem="Cjp-6k-puJ" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="lz7-oV-EzG"/>
                 <constraint firstItem="Cjp-6k-puJ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="vyV-WB-JCZ"/>
             </constraints>
@@ -388,44 +183,21 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
-                <outlet property="descView" destination="eNq-kC-Uni" id="av8-3f-c23"/>
-                <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"/>
                 <outlet property="userAvatal" destination="Qfc-m1-p6a" id="HXo-UU-POk"/>
                 <outlet property="userName" destination="QPn-ge-mEt" id="0Ik-q9-R0x"/>
                 <outlet property="videoImage" destination="73K-iM-5zb" id="Qrk-Ei-FId"/>
                 <outlet property="viperImage" destination="W7w-Qv-jgO" id="0Qp-li-sYd"/>
             </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="-26.116071428571427"/>
+            <point key="canvasLocation" x="131.8840579710145" y="-69.308035714285708"/>
         </view>
-        <tapGestureRecognizer id="fMR-WV-TaM">
-            <connections>
-                <action selector="fansDetail:" destination="iN0-l3-epB" id="prT-oz-Ptb"/>
-            </connections>
-        </tapGestureRecognizer>
-        <tapGestureRecognizer id="isT-i5-NcG">
-            <connections>
-                <action selector="finishCourse:" destination="iN0-l3-epB" id="EwK-Am-X4c"/>
-            </connections>
-        </tapGestureRecognizer>
-        <tapGestureRecognizer id="fhm-qk-tgl">
-            <connections>
-                <action selector="unfinishCourse:" destination="iN0-l3-epB" id="id7-LG-oud"/>
-            </connections>
-        </tapGestureRecognizer>
         <tapGestureRecognizer id="Iir-fe-oYc">
             <connections>
                 <action selector="showIntroduceAlert:" destination="iN0-l3-epB" id="9CA-P0-Ap8"/>
@@ -433,9 +205,6 @@
         </tapGestureRecognizer>
     </objects>
     <resources>
-        <image name="member_bg" width="334" height="82"/>
-        <image name="member_center" width="74" height="26"/>
-        <image name="member_logo" width="19" height="18"/>
         <image name="mineLive_nomal" width="24" height="23"/>
         <image name="mineMusic_nomal" width="24" height="23"/>
         <image name="mineStyle_nomal" width="23" height="23"/>

+ 26 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/TenantMineHeadView.h

@@ -0,0 +1,26 @@
+//
+//  TenantMineHeadView.h
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2023/9/19.
+//
+
+#import <UIKit/UIKit.h>
+#import "UserInfo.h"
+#import "MineActionView.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface TenantMineHeadView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)operationCallback:(MineViewCallback)callback;
+
+- (CGFloat)getViewHeight;
+
+- (void)configMessage:(UserInfo *)infoMessage;
+@end
+
+NS_ASSUME_NONNULL_END

+ 160 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/TenantMineHeadView.m

@@ -0,0 +1,160 @@
+//
+//  TenantMineHeadView.m
+//  KulexiuForTeacher
+//
+//  Created by 王智 on 2023/9/19.
+//
+
+#import "TenantMineHeadView.h"
+#import "KSStarView.h"
+
+@interface TenantMineHeadView ()
+
+@property (weak, nonatomic) IBOutlet UILabel *tenantName;
+
+@property (weak, nonatomic) IBOutlet UILabel *userName;
+
+@property (weak, nonatomic) IBOutlet UIImageView *userAvatal;
+
+@property (nonatomic, copy) MineViewCallback callback;
+
+
+@property (weak, nonatomic) IBOutlet KSStarView *starView;
+
+
+@property (weak, nonatomic) IBOutlet UIImageView *viperImage;
+@property (weak, nonatomic) IBOutlet UIImageView *styleImage;
+@property (weak, nonatomic) IBOutlet UIImageView *videoImage;
+@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 TenantMineHeadView
+
++ (instancetype)shareInstance {
+    TenantMineHeadView *view = [[[NSBundle mainBundle] loadNibNamed:@"TenantMineHeadView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configMessage:(UserInfo *)infoMessage {
+    
+    self.tenantName.text = [NSString returnNoNullStringWithString:infoMessage.tenantName];
+
+    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 = infoMessage.degreeFlag;
+    BOOL hasTeacherAuth = infoMessage.teacherFlag;
+    
+    for (NSString *tagString in tagArray) {
+        if ([tagString isEqualToString:@"STYLE"]) {
+            [self.styleImage setImage:[UIImage imageNamed:@"mineStyle_active"]];
+        }
+        else if ([tagString isEqualToString:@"VIDEO"]) {
+            [self.videoImage setImage:[UIImage imageNamed:@"mineVideo_active"]];
+        }
+        else if ([tagString isEqualToString:@"LIVE"]) {
+            [self.liveImage setImage:[UIImage imageNamed:@"mineLive_active"]];
+        }
+        else if ([tagString isEqualToString:@"MUSIC"]) {
+            [self.musicImage setImage:[UIImage imageNamed:@"mineMusic_active"]];
+        }
+    }
+    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.starView.rate = infoMessage.starGrade / 5.0f;
+    
+    if (![NSString isEmptyString:infoMessage.heardUrl]) {
+        [self.userAvatal sd_setImageWithURL:[NSURL URLWithString:[infoMessage.heardUrl getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+    }
+    else {
+        [self.userAvatal setImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+    }
+    
+    if ([NSString isEmptyString:infoMessage.username]) {
+        self.userName.text = [NSString stringWithFormat:@"游客%@",[NSString returnNoNullStringWithString:infoMessage.userId]];
+    }
+    else {
+        self.userName.text = infoMessage.username;
+    }
+}
+
+- (void)operationCallback:(MineViewCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+
+- (IBAction)toUserCenter:(id)sender {
+    if (self.callback) {
+        self.callback(MINEVIEWTYPE_USERSETTING);
+    }
+}
+
+
+- (IBAction)showIntroduceAlert:(id)sender {
+    if (self.callback) {
+        self.callback(MINEVIEWTYPE_SHOWDESC);
+    }
+}
+
+- (CGFloat)getViewHeight {
+    return 110 + 13;
+}
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 249 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/TenantMineHeadView.xib

@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <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="TenantMineHeadView">
+            <rect key="frame" x="0.0" y="0.0" width="375" height="110"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6w5-En-SDh">
+                    <rect key="frame" x="0.0" y="0.0" width="375" height="110"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="MUG-JJ-qQX">
+                            <rect key="frame" x="15" y="5" width="60" height="60"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="60" id="MEV-vM-Vrt"/>
+                                <constraint firstAttribute="height" constant="60" id="bCj-YP-ZjB"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="30"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                    <real key="value" value="2"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                                    <color key="value" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </imageView>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vFq-5f-Squ">
+                            <rect key="frame" x="83" y="45" width="10" height="18"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fa1-iw-aks">
+                                    <rect key="frame" x="5" y="0.0" width="0.0" height="18"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                    <color key="textColor" red="1" green="0.4823529412" blue="0.19215686269999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" red="1" green="0.65098039220000004" blue="0.45098039220000002" alpha="0.070000000000000007" colorSpace="custom" customColorSpace="sRGB"/>
+                            <constraints>
+                                <constraint firstItem="Fa1-iw-aks" firstAttribute="leading" secondItem="vFq-5f-Squ" secondAttribute="leading" constant="5" id="Bq8-Fh-hdi"/>
+                                <constraint firstAttribute="bottom" secondItem="Fa1-iw-aks" secondAttribute="bottom" id="FcR-oD-sJx"/>
+                                <constraint firstItem="Fa1-iw-aks" firstAttribute="top" secondItem="vFq-5f-Squ" secondAttribute="top" id="JGY-YY-leG"/>
+                                <constraint firstAttribute="trailing" secondItem="Fa1-iw-aks" secondAttribute="trailing" constant="5" id="Xad-JL-rK3"/>
+                                <constraint firstAttribute="height" constant="18" id="zqy-vO-MrK"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="color" keyPath="borderColor">
+                                    <color key="value" red="1" green="0.74901960779999999" blue="0.60392156860000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="number" keyPath="borderWidth">
+                                    <real key="value" value="1"/>
+                                </userDefinedRuntimeAttribute>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="4"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J7V-BY-Z3E">
+                            <rect key="frame" x="85" y="11" width="41" height="24"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="20"/>
+                            <color key="textColor" red="0.1019607843" green="0.1019607843" blue="0.1019607843" 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="rk5-S8-fb2">
+                            <rect key="frame" x="224" y="88.666666666666671" 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="wdE-hK-zbq">
+                            <rect key="frame" x="261" y="86.666666666666671" width="95" height="19"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Vee-Pj-USj" customClass="KSStarView">
+                                    <rect key="frame" x="0.0" y="0.0" width="95" height="19"/>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="19" id="Tqe-8I-THu"/>
+                                <constraint firstItem="Vee-Pj-USj" firstAttribute="leading" secondItem="wdE-hK-zbq" secondAttribute="leading" id="eR4-gZ-T5G"/>
+                                <constraint firstItem="Vee-Pj-USj" firstAttribute="top" secondItem="wdE-hK-zbq" secondAttribute="top" id="fOx-GY-Klj"/>
+                                <constraint firstAttribute="bottom" secondItem="Vee-Pj-USj" secondAttribute="bottom" id="pMz-4P-9nE"/>
+                                <constraint firstAttribute="trailing" secondItem="Vee-Pj-USj" secondAttribute="trailing" id="psY-yM-fHt"/>
+                                <constraint firstAttribute="width" constant="95" id="xGD-iA-mSc"/>
+                            </constraints>
+                        </view>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7ie-6w-nwS">
+                            <rect key="frame" x="15" y="5" width="60" height="60"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="toUserCenter:" destination="iN0-l3-epB" eventType="touchUpInside" id="O7D-ND-ABn"/>
+                            </connections>
+                        </button>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="OIG-vb-9aR">
+                            <rect key="frame" x="60" y="84" width="84" height="24"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineStyle_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="y0K-rg-5qe">
+                                    <rect key="frame" x="4" y="4" width="16" height="16"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="16" id="WPf-0e-AZg"/>
+                                        <constraint firstAttribute="height" constant="16" id="zDJ-rd-0WC"/>
+                                    </constraints>
+                                </imageView>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineVideo_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="SFp-8t-ODB">
+                                    <rect key="frame" x="24" y="4" width="16" height="16"/>
+                                </imageView>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineLive_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="6cX-rV-icN">
+                                    <rect key="frame" x="44" y="4" width="16" height="16"/>
+                                </imageView>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mineMusic_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="6qb-vS-dZU">
+                                    <rect key="frame" x="64" y="4" width="16" height="16"/>
+                                </imageView>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                            <gestureRecognizers/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="3Ak-uB-Efm"/>
+                                <constraint firstItem="6qb-vS-dZU" firstAttribute="width" secondItem="y0K-rg-5qe" secondAttribute="width" id="4wc-QI-yVa"/>
+                                <constraint firstItem="6cX-rV-icN" firstAttribute="leading" secondItem="SFp-8t-ODB" secondAttribute="trailing" constant="4" id="9Rl-ab-6pM"/>
+                                <constraint firstItem="y0K-rg-5qe" firstAttribute="centerY" secondItem="OIG-vb-9aR" secondAttribute="centerY" id="KId-fY-KI8"/>
+                                <constraint firstItem="SFp-8t-ODB" firstAttribute="width" secondItem="y0K-rg-5qe" secondAttribute="width" id="Qy7-lB-yma"/>
+                                <constraint firstItem="6cX-rV-icN" firstAttribute="height" secondItem="y0K-rg-5qe" secondAttribute="height" id="dGC-2o-I5R"/>
+                                <constraint firstItem="6qb-vS-dZU" firstAttribute="leading" secondItem="6cX-rV-icN" secondAttribute="trailing" constant="4" id="elM-8M-Iyq"/>
+                                <constraint firstItem="6qb-vS-dZU" firstAttribute="height" secondItem="y0K-rg-5qe" secondAttribute="height" id="faj-uQ-WVe"/>
+                                <constraint firstItem="SFp-8t-ODB" firstAttribute="height" secondItem="y0K-rg-5qe" secondAttribute="height" id="haw-zU-nkP"/>
+                                <constraint firstItem="y0K-rg-5qe" firstAttribute="leading" secondItem="OIG-vb-9aR" secondAttribute="leading" constant="4" id="io5-it-ODt"/>
+                                <constraint firstAttribute="trailing" secondItem="6qb-vS-dZU" secondAttribute="trailing" constant="4" id="ppM-Un-44N"/>
+                                <constraint firstItem="SFp-8t-ODB" firstAttribute="leading" secondItem="y0K-rg-5qe" secondAttribute="trailing" constant="4" id="rVk-Yl-vfY"/>
+                                <constraint firstItem="6qb-vS-dZU" firstAttribute="centerY" secondItem="y0K-rg-5qe" secondAttribute="centerY" id="sPw-1f-8eZ"/>
+                                <constraint firstItem="SFp-8t-ODB" firstAttribute="centerY" secondItem="y0K-rg-5qe" secondAttribute="centerY" id="x23-PF-dZQ"/>
+                                <constraint firstItem="6cX-rV-icN" firstAttribute="width" secondItem="y0K-rg-5qe" secondAttribute="width" id="z7H-t2-n4L"/>
+                                <constraint firstItem="6cX-rV-icN" firstAttribute="centerY" secondItem="y0K-rg-5qe" secondAttribute="centerY" id="zPg-KS-TVt"/>
+                            </constraints>
+                            <connections>
+                                <outletCollection property="gestureRecognizers" destination="hOy-H9-kj9" appends="YES" id="iz5-UE-iVC"/>
+                            </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="pug-lS-V28">
+                            <rect key="frame" x="23" y="88.666666666666671" 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="QHb-w1-1yi">
+                            <rect key="frame" x="135" y="15" width="39" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="39" id="dmt-FK-O3O"/>
+                                <constraint firstAttribute="height" constant="16" id="oKJ-9H-jHo"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Pf0-fO-g6q">
+                            <rect key="frame" x="180" y="15" width="39" height="16"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="39" id="0jU-Yr-iab"/>
+                                <constraint firstAttribute="height" constant="16" id="WMh-DL-Rcf"/>
+                            </constraints>
+                        </imageView>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_nomal" translatesAutoresizingMaskIntoConstraints="NO" id="sLr-9M-73V">
+                            <rect key="frame" x="28" y="57.666666666666657" width="34" height="15"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="34" id="LCi-wq-oM8"/>
+                                <constraint firstAttribute="height" constant="15" id="Xik-sy-tnm"/>
+                            </constraints>
+                        </imageView>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <gestureRecognizers/>
+                    <constraints>
+                        <constraint firstItem="MUG-JJ-qQX" firstAttribute="leading" secondItem="6w5-En-SDh" secondAttribute="leading" constant="15" id="1SG-mb-u5B"/>
+                        <constraint firstItem="wdE-hK-zbq" firstAttribute="centerY" secondItem="rk5-S8-fb2" secondAttribute="centerY" id="39e-iZ-mdg"/>
+                        <constraint firstItem="pug-lS-V28" firstAttribute="top" secondItem="sLr-9M-73V" secondAttribute="bottom" constant="16" id="4lf-2M-dzr"/>
+                        <constraint firstItem="J7V-BY-Z3E" firstAttribute="top" secondItem="MUG-JJ-qQX" secondAttribute="top" constant="6" id="8dW-9H-ZGe"/>
+                        <constraint firstItem="Pf0-fO-g6q" firstAttribute="centerY" secondItem="J7V-BY-Z3E" secondAttribute="centerY" id="EEO-69-wM2"/>
+                        <constraint firstItem="pug-lS-V28" firstAttribute="leading" secondItem="6w5-En-SDh" secondAttribute="leading" constant="23" id="FqR-j6-UDO"/>
+                        <constraint firstItem="7ie-6w-nwS" firstAttribute="top" secondItem="MUG-JJ-qQX" secondAttribute="top" id="IdQ-33-FFt"/>
+                        <constraint firstItem="vFq-5f-Squ" firstAttribute="top" secondItem="J7V-BY-Z3E" secondAttribute="bottom" constant="10" id="JBn-7m-3Mk"/>
+                        <constraint firstItem="sLr-9M-73V" firstAttribute="centerX" secondItem="MUG-JJ-qQX" secondAttribute="centerX" id="NZY-1n-rgQ"/>
+                        <constraint firstItem="wdE-hK-zbq" firstAttribute="leading" secondItem="rk5-S8-fb2" secondAttribute="trailing" id="P29-Uc-H8t"/>
+                        <constraint firstItem="sLr-9M-73V" firstAttribute="centerY" secondItem="MUG-JJ-qQX" secondAttribute="bottom" id="Qsm-SJ-vkk"/>
+                        <constraint firstItem="Pf0-fO-g6q" firstAttribute="leading" secondItem="QHb-w1-1yi" secondAttribute="trailing" constant="6" id="Vxa-rb-qgx"/>
+                        <constraint firstItem="7ie-6w-nwS" firstAttribute="leading" secondItem="MUG-JJ-qQX" secondAttribute="leading" id="Vy8-3K-WaH"/>
+                        <constraint firstAttribute="trailing" secondItem="wdE-hK-zbq" secondAttribute="trailing" constant="19" id="Xf0-A0-CjC"/>
+                        <constraint firstItem="7ie-6w-nwS" firstAttribute="trailing" secondItem="MUG-JJ-qQX" secondAttribute="trailing" id="aza-jf-emx"/>
+                        <constraint firstItem="vFq-5f-Squ" firstAttribute="leading" secondItem="J7V-BY-Z3E" secondAttribute="leading" constant="-2" id="c5L-71-tmn"/>
+                        <constraint firstItem="QHb-w1-1yi" firstAttribute="leading" secondItem="J7V-BY-Z3E" secondAttribute="trailing" constant="9" id="djv-LZ-Zp8"/>
+                        <constraint firstItem="7ie-6w-nwS" firstAttribute="bottom" secondItem="MUG-JJ-qQX" secondAttribute="bottom" id="fn3-ed-5ex"/>
+                        <constraint firstItem="OIG-vb-9aR" firstAttribute="leading" secondItem="pug-lS-V28" secondAttribute="trailing" id="gR3-wc-390"/>
+                        <constraint firstItem="J7V-BY-Z3E" firstAttribute="leading" secondItem="MUG-JJ-qQX" secondAttribute="trailing" constant="10" id="i0C-Zc-4H6"/>
+                        <constraint firstItem="QHb-w1-1yi" firstAttribute="centerY" secondItem="J7V-BY-Z3E" secondAttribute="centerY" id="lsV-MG-QuC"/>
+                        <constraint firstItem="rk5-S8-fb2" firstAttribute="centerY" secondItem="OIG-vb-9aR" secondAttribute="centerY" id="mic-Lj-TDD"/>
+                        <constraint firstAttribute="height" constant="110" id="ord-Ho-HeA"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Pf0-fO-g6q" secondAttribute="trailing" constant="10" id="pOA-Yw-5eC"/>
+                        <constraint firstItem="OIG-vb-9aR" firstAttribute="centerY" secondItem="pug-lS-V28" secondAttribute="centerY" id="qbQ-DQ-K6d"/>
+                        <constraint firstItem="MUG-JJ-qQX" firstAttribute="top" secondItem="6w5-En-SDh" secondAttribute="top" constant="5" id="tD0-v0-dqs"/>
+                        <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="vFq-5f-Squ" secondAttribute="trailing" constant="10" id="zq6-t4-Oao"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="6w5-En-SDh" secondAttribute="trailing" id="KRS-Lm-GZT"/>
+                <constraint firstItem="6w5-En-SDh" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="OBv-4b-NoP"/>
+                <constraint firstItem="6w5-En-SDh" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="WTE-hM-vMx"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="firstImage" destination="QHb-w1-1yi" id="xFZ-D3-L0A"/>
+                <outlet property="firstImageWidth" destination="dmt-FK-O3O" id="Sev-4v-Mgd"/>
+                <outlet property="liveImage" destination="6cX-rV-icN" id="uMO-0U-97O"/>
+                <outlet property="musicImage" destination="6qb-vS-dZU" id="Q0N-X6-Mnr"/>
+                <outlet property="secondImage" destination="Pf0-fO-g6q" id="LoJ-cJ-Yr7"/>
+                <outlet property="secondImageWidth" destination="0jU-Yr-iab" id="pCT-gY-xn0"/>
+                <outlet property="starView" destination="Vee-Pj-USj" id="Ctj-dB-b48"/>
+                <outlet property="styleImage" destination="y0K-rg-5qe" id="Udc-S2-lzT"/>
+                <outlet property="tenantName" destination="Fa1-iw-aks" id="qTf-rU-7Bz"/>
+                <outlet property="userAvatal" destination="MUG-JJ-qQX" id="DMc-LE-rW8"/>
+                <outlet property="userName" destination="J7V-BY-Z3E" id="C0T-35-Zuk"/>
+                <outlet property="videoImage" destination="SFp-8t-ODB" id="rOw-D5-6Zi"/>
+                <outlet property="viperImage" destination="sLr-9M-73V" id="e35-a7-ZOe"/>
+            </connections>
+            <point key="canvasLocation" x="38.931297709923662" y="-207.74647887323945"/>
+        </view>
+        <tapGestureRecognizer id="hOy-H9-kj9">
+            <connections>
+                <action selector="showIntroduceAlert:" destination="iN0-l3-epB" id="GyP-VB-lHj"/>
+            </connections>
+        </tapGestureRecognizer>
+    </objects>
+    <resources>
+        <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_nomal" width="34" height="15"/>
+        <image name="user_default_avatal" width="52" height="52"/>
+    </resources>
+</document>