Steven 1 年間 前
コミット
603993f86c
39 ファイル変更613 行追加205 行削除
  1. 16 0
      KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj
  2. 1 1
      KulexiuForStudent/KulexiuForStudent/AppDelegate.m
  3. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Institution/Home/tenant_logo.imageset/tenant_logo@2x.png
  4. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Institution/Home/tenant_logo.imageset/tenant_logo@3x.png
  5. 21 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/enant_chatBg.imageset/Contents.json
  6. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/enant_chatBg.imageset/enant_chatBg@2x.png
  7. 21 0
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/tenant_chatBg.imageset/Contents.json
  8. BIN
      KulexiuForStudent/KulexiuForStudent/Assets.xcassets/tenant_chatBg.imageset/tenant_chatBg@3x.png
  9. 20 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSEmptyStatusView.h
  10. 40 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSEmptyStatusView.m
  11. 51 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSEmptyStatusView.xib
  12. 1 0
      KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m
  13. 2 0
      KulexiuForStudent/KulexiuForStudent/Common/Define/Common.h
  14. 5 3
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Controller/TenantDarkViewController.m
  15. 45 10
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Controller/TenantMoreViewController.m
  16. 18 0
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Model/HomeMusicSheetLayout.h
  17. 118 0
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Model/HomeMusicSheetLayout.m
  18. 2 0
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/MoreMusicPage/MorePageSearchView.m
  19. 2 1
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/MoreMusicPage/MorePageSearchView.xib
  20. 1 1
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/TenantDarkSearhView.m
  21. 4 4
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/TenantDarkSearhView.xib
  22. 11 9
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/Controller/INSSettingViewController.m
  23. 1 1
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/View/INSSettingBodyView.xib
  24. 22 22
      KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/View/InstitutionMineBodyView.xib
  25. 4 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/ChatAddressViewController.m
  26. 11 0
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/ChatViewController.m
  27. 11 4
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatListViewController.m
  28. 14 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSConversationListController.m
  29. 2 2
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/GroupMemberViewController.m
  30. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/View/GroupSettingBodyView.m
  31. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/View/GroupSettingBodyView.xib
  32. 6 6
      KulexiuForStudent/KulexiuForStudent/Module/Chat/GroupNotice/View/GroupNoticeCell.m
  33. 124 99
      KulexiuForStudent/KulexiuForStudent/Module/Chat/GroupNotice/View/GroupNoticeCell.xib
  34. 2 0
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Search/KSSearchResultListController.m
  35. 1 0
      KulexiuForStudent/KulexiuForStudent/Module/Chat/Search/KSSearchViewController.m
  36. 17 17
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ChatAddressBodyView.m
  37. 3 3
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ChatNavView.xib
  38. 1 1
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.m
  39. 13 17
      KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.xib

+ 16 - 0
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -779,6 +779,9 @@
 		BCA3DBBD29014B9800AE1C49 /* TunerForkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA3DBBC29014B9800AE1C49 /* TunerForkManager.swift */; };
 		BCA3DBC029015E2500AE1C49 /* TunerSettingView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCA3DBBF29015E2500AE1C49 /* TunerSettingView.m */; };
 		BCA3DBC229015E2C00AE1C49 /* TunerSettingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCA3DBC129015E2C00AE1C49 /* TunerSettingView.xib */; };
+		BCB5B2D12ABAFE8E005BF25D /* HomeMusicSheetLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB5B2D02ABAFE8E005BF25D /* HomeMusicSheetLayout.m */; };
+		BCB5B2D52ABB1E13005BF25D /* KSEmptyStatusView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB5B2D22ABB1E12005BF25D /* KSEmptyStatusView.m */; };
+		BCB5B2D62ABB1E13005BF25D /* KSEmptyStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCB5B2D32ABB1E12005BF25D /* KSEmptyStatusView.xib */; };
 		BCB6345D27F6D29600ACFDCF /* KSLiveChatroomWelcome.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6340D27F6D29500ACFDCF /* KSLiveChatroomWelcome.m */; };
 		BCB6345E27F6D29600ACFDCF /* KSLiveChatroomLeave.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6340E27F6D29500ACFDCF /* KSLiveChatroomLeave.m */; };
 		BCB6345F27F6D29600ACFDCF /* KSLiveChatroomEnter.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB6340F27F6D29500ACFDCF /* KSLiveChatroomEnter.m */; };
@@ -2432,6 +2435,11 @@
 		BCA3DBBE29015E2500AE1C49 /* TunerSettingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TunerSettingView.h; sourceTree = "<group>"; };
 		BCA3DBBF29015E2500AE1C49 /* TunerSettingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TunerSettingView.m; sourceTree = "<group>"; };
 		BCA3DBC129015E2C00AE1C49 /* TunerSettingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TunerSettingView.xib; sourceTree = "<group>"; };
+		BCB5B2CF2ABAFE8E005BF25D /* HomeMusicSheetLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMusicSheetLayout.h; sourceTree = "<group>"; };
+		BCB5B2D02ABAFE8E005BF25D /* HomeMusicSheetLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeMusicSheetLayout.m; sourceTree = "<group>"; };
+		BCB5B2D22ABB1E12005BF25D /* KSEmptyStatusView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSEmptyStatusView.m; sourceTree = "<group>"; };
+		BCB5B2D32ABB1E12005BF25D /* KSEmptyStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KSEmptyStatusView.xib; sourceTree = "<group>"; };
+		BCB5B2D42ABB1E12005BF25D /* KSEmptyStatusView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSEmptyStatusView.h; sourceTree = "<group>"; };
 		BCB6340C27F6D29500ACFDCF /* KSRCMessageModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSRCMessageModel.h; sourceTree = "<group>"; };
 		BCB6340D27F6D29500ACFDCF /* KSLiveChatroomWelcome.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomWelcome.m; sourceTree = "<group>"; };
 		BCB6340E27F6D29500ACFDCF /* KSLiveChatroomLeave.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSLiveChatroomLeave.m; sourceTree = "<group>"; };
@@ -4336,6 +4344,9 @@
 		2779350B27E324A40010E277 /* Base */ = {
 			isa = PBXGroup;
 			children = (
+				BCB5B2D42ABB1E12005BF25D /* KSEmptyStatusView.h */,
+				BCB5B2D22ABB1E12005BF25D /* KSEmptyStatusView.m */,
+				BCB5B2D32ABB1E12005BF25D /* KSEmptyStatusView.xib */,
 				BC2888532A80F7BF0064B773 /* LoginManger */,
 				BCED1595293D941100266AEB /* banzou.mp3 */,
 				BCC5839328A9EC5C00BAB4CF /* CloudLoadingSource */,
@@ -5077,6 +5088,8 @@
 				BCCE95D22AB0410600AB6385 /* darkEmptyAnimation.json */,
 				BCF425F52AB991E600BCD942 /* TenantAlbumModel.h */,
 				BCF425F62AB991E600BCD942 /* TenantAlbumModel.m */,
+				BCB5B2CF2ABAFE8E005BF25D /* HomeMusicSheetLayout.h */,
+				BCB5B2D02ABAFE8E005BF25D /* HomeMusicSheetLayout.m */,
 			);
 			path = Model;
 			sourceTree = "<group>";
@@ -7197,6 +7210,7 @@
 				BCC583C628A9EC6400BAB4CF /* cloud_animation_13.png in Resources */,
 				BCC583C428A9EC6400BAB4CF /* cloud_animation_16.png in Resources */,
 				BCFDA65828BCA2000022B497 /* live_animation.json in Resources */,
+				BCB5B2D62ABB1E13005BF25D /* KSEmptyStatusView.xib in Resources */,
 				BCA3DBC229015E2C00AE1C49 /* TunerSettingView.xib in Resources */,
 				BC71D259288804CD0010F14B /* img_48.png in Resources */,
 				BC71D274288804CD0010F14B /* img_37.png in Resources */,
@@ -7694,6 +7708,7 @@
 				BC2933002AAEFC810024D98E /* INSSettingViewController.m in Sources */,
 				BCD886E42908E69900BC4EE6 /* KSGaugeColorView.m in Sources */,
 				BC48C3A92828FC7D00EE65C5 /* KSUploadManager.m in Sources */,
+				BCB5B2D12ABAFE8E005BF25D /* HomeMusicSheetLayout.m in Sources */,
 				BC8A4599283DC33400094BBB /* TBXML.m in Sources */,
 				BC542E4B28409E9F00633781 /* InstrumentChooseViewController.m in Sources */,
 				BC3A4EB428DAE202001C4428 /* UIImage+KSScreenShot.m in Sources */,
@@ -7790,6 +7805,7 @@
 				BC106C242A933869000759A9 /* TXTestGenerateUserSig.m in Sources */,
 				2723B61F27F157D500E0B90B /* GroupNoticeModel.m in Sources */,
 				275FA1E627E7351900CFEA2E /* KSUpdateAlert.m in Sources */,
+				BCB5B2D52ABB1E13005BF25D /* KSEmptyStatusView.m in Sources */,
 				2779355027E324A70010E277 /* VoDiskCache.m in Sources */,
 				BCFEED6228F7E4910078A2B7 /* WidgetDotView.m in Sources */,
 				BCC0F6ED2A8CE4AF00C4EFA4 /* ZoomControl.m in Sources */,

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/AppDelegate.m

@@ -787,7 +787,7 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
                         webCtrl.url = webUrl;
                         
                         UIViewController *vc = self.window.rootViewController;
-                        if ([vc isKindOfClass:[KSTabBarViewController class]]) {
+                        if ([vc isKindOfClass:[self.tabBarController class]]) {
                             CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
                             [navCtrl pushViewController:webCtrl animated:YES];
                         }

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Institution/Home/tenant_logo.imageset/tenant_logo@2x.png


BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/Institution/Home/tenant_logo.imageset/tenant_logo@3x.png


+ 21 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/enant_chatBg.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/enant_chatBg.imageset/enant_chatBg@2x.png


+ 21 - 0
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/tenant_chatBg.imageset/Contents.json

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

BIN
KulexiuForStudent/KulexiuForStudent/Assets.xcassets/tenant_chatBg.imageset/tenant_chatBg@3x.png


+ 20 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/KSEmptyStatusView.h

@@ -0,0 +1,20 @@
+//
+//  KSEmptyStatusView.h
+//  GuanYueTeamTeacher
+//
+//  Created by 王智 on 2023/2/24.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface KSEmptyStatusView : UIView
+
++ (instancetype)shareInstance;
+
+- (void)configImageName:(NSString *)imageName desc:(NSString *)desc topHeight:(NSInteger)topHeight;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 40 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/KSEmptyStatusView.m

@@ -0,0 +1,40 @@
+//
+//  KSEmptyStatusView.m
+//  GuanYueTeamTeacher
+//
+//  Created by 王智 on 2023/2/24.
+//
+
+#import "KSEmptyStatusView.h"
+
+@interface KSEmptyStatusView ()
+
+@property (weak, nonatomic) IBOutlet UIImageView *emptyImage;
+
+@property (weak, nonatomic) IBOutlet UILabel *descLabel;
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topSpace;
+
+@end
+
+@implementation KSEmptyStatusView
+
++ (instancetype)shareInstance {
+    KSEmptyStatusView *view = [[[NSBundle mainBundle] loadNibNamed:@"KSEmptyStatusView" owner:nil options:nil] firstObject];
+    return view;
+}
+
+- (void)configImageName:(NSString *)imageName desc:(NSString *)desc topHeight:(NSInteger)topHeight {
+    [self.emptyImage setImage:[UIImage imageNamed:imageName]];
+    self.descLabel.text = desc;
+    self.topSpace.constant = topHeight;
+}
+
+/*
+// Only override drawRect: if you perform custom drawing.
+// An empty implementation adversely affects performance during animation.
+- (void)drawRect:(CGRect)rect {
+    // Drawing code
+}
+*/
+
+@end

+ 51 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/KSEmptyStatusView.xib

@@ -0,0 +1,51 @@
+<?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="KSEmptyStatusView">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="647"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="wd_img_zwsj" translatesAutoresizingMaskIntoConstraints="NO" id="iYg-CM-bcg">
+                    <rect key="frame" x="66.666666666666686" y="134" width="260" height="230"/>
+                </imageView>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="暂无作业" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wxy-hZ-W0O">
+                    <rect key="frame" x="66.666666666666686" y="382" width="260" height="18"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="18" id="03B-Ph-DqR"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="Wxy-hZ-W0O" firstAttribute="top" secondItem="iYg-CM-bcg" secondAttribute="bottom" constant="18" id="E3z-mn-IAc"/>
+                <constraint firstItem="Wxy-hZ-W0O" firstAttribute="trailing" secondItem="iYg-CM-bcg" secondAttribute="trailing" id="KcT-37-U8Q"/>
+                <constraint firstItem="iYg-CM-bcg" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="TaD-Bh-qmZ"/>
+                <constraint firstItem="Wxy-hZ-W0O" firstAttribute="leading" secondItem="iYg-CM-bcg" secondAttribute="leading" id="dWe-0D-Eev"/>
+                <constraint firstItem="iYg-CM-bcg" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="134" id="ky9-kf-Dxw"/>
+            </constraints>
+            <nil key="simulatedTopBarMetrics"/>
+            <nil key="simulatedBottomBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="descLabel" destination="Wxy-hZ-W0O" id="fvT-us-Pxc"/>
+                <outlet property="emptyImage" destination="iYg-CM-bcg" id="vty-o4-F7c"/>
+                <outlet property="topSpace" destination="ky9-kf-Dxw" id="QX8-B2-RgF"/>
+            </connections>
+            <point key="canvasLocation" x="78.625954198473281" y="21.47887323943662"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="wd_img_zwsj" width="260" height="230"/>
+    </resources>
+</document>

+ 1 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/KSNetworkingManager.m

@@ -1753,6 +1753,7 @@
     NSMutableDictionary *parm = [NSMutableDictionary dictionary];
     [parm setValue:@(1) forKey:@"page"];
     [parm setValue:@(10) forKey:@"rows"];
+    [parm setValue:@(NO) forKey:@"activationStatus"];
     [self request:post andWithUrl:url and:parm success:success faliure:faliure];
 }
 

+ 2 - 0
KulexiuForStudent/KulexiuForStudent/Common/Define/Common.h

@@ -26,6 +26,8 @@
 
 #define CLIENT_THEMECOLOR ([UserDefaultObjectForKey(TENANT_ID) integerValue] <= 0 ? THEMECOLOR : INS_THEMECOLOR)
 
+#define CLIENT_THEMESORTCOLOR ([UserDefaultObjectForKey(TENANT_ID) integerValue] <= 0 ? THEMECOLOR : HexRGB(0xFF4D72))
+
 #define CLIENT_THEMEBUTTONCOLOR ([UserDefaultObjectForKey(TENANT_ID) integerValue] <= 0 ? THEMECOLOR : HexRGB(0xFF5993))
 
 #define CLIENT_SEARCH_IMG ([UserDefaultObjectForKey(TENANT_ID) integerValue] <= 0 ? @"search_green" : @"search_red")

+ 5 - 3
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Controller/TenantDarkViewController.m

@@ -113,8 +113,10 @@
         self.alert = [TenantTicketAlert shareInstance];
         MJWeakSelf;
         [self.alert configCount:count callback:^(BOOL isActivate) {
-            appDelegate.isShowFlashAlert = NO;
-            [weakSelf showActivateView];
+            if (isActivate) {
+                appDelegate.isShowFlashAlert = NO;
+                [weakSelf showActivateView];
+            }
             [appDelegate showMemoAlert]; // 检测是否需要弹窗版本更新
         }];
         [self.alert showAlert];
@@ -134,7 +136,7 @@
         dispatch_group_leave(self.requestGroup);
         
         if ([dic ks_integerValueForKey:@"code"] == 200 && [dic ks_boolValueForKey:@"status"]) {
-            NSInteger count = [dic ks_integerValueForKey:@"total"];
+            NSInteger count = [[dic ks_dictionaryValueForKey:@"data"] ks_integerValueForKey:@"total"];
             [self ticketCheck:count];
         }
         else {

+ 45 - 10
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Controller/TenantMoreViewController.m

@@ -30,6 +30,9 @@
 #import "UserInfo.h"
 #import "UserInfoManager.h"
 #import "InstrumentChooseViewController.h"
+#import "TenantDragView.h"
+#import "SmallToolViewController.h"
+#import "HomeMusicSheetLayout.h"
 
 @interface TenantMoreViewController ()<UICollectionViewDelegate, UICollectionViewDelegateFlowLayout,UICollectionViewDataSource,TYCyclePagerViewDataSource,TYCyclePagerViewDelegate>
 
@@ -73,6 +76,9 @@
 
 @property (nonatomic, strong) UserInfo *mineInfo;
 
+@property (nonatomic, strong) TenantDragView *suspendButton;
+
+
 @end
 
 @implementation TenantMoreViewController
@@ -171,8 +177,18 @@
         make.height.mas_equalTo(self.hotMusicViewHeight);
         make.bottom.mas_equalTo(self.scrollView.mas_bottom).offset(-10);
     }];
+    
+    [self showFloatingWindow];
 }
 
+- (void)showFloatingWindow {
+    if (![self.view.subviews containsObject:self.suspendButton]) {
+        [self.view addSubview:self.suspendButton];
+    }
+    [self.view bringSubviewToFront:self.suspendButton];
+}
+
+
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
     [self requestData];
@@ -521,7 +537,8 @@
 
     }
     else {
-        return CGSizeMake(KPortraitWidth * 0.83, 243);
+        NSInteger width = (NSInteger)(KPortraitWidth * 0.83);
+        return CGSizeMake(width, 243);
     }
 }
 
@@ -709,9 +726,10 @@
 
 - (UICollectionView *)recommendMusicCollectionView {
     if (!_recommendMusicCollectionView) {
-        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
-        layout.sectionInset = UIEdgeInsetsMake(12, 14, 12, 14);
-        layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+        NSInteger width = (NSInteger)(KPortraitWidth * 0.83);
+
+        HomeMusicSheetLayout *layout = [[HomeMusicSheetLayout alloc] initWithSectionInset:UIEdgeInsetsMake(12, 11, 12, KPortraitWidth - width) andMiniLineSapce:10 andMiniInterItemSpace:10 andItemSize:CGSizeMake(width, 243)];
+
         _recommendMusicCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
         _recommendMusicCollectionView.backgroundColor = [UIColor clearColor];
         _recommendMusicCollectionView.delegate = self;
@@ -767,9 +785,10 @@
 
 - (UICollectionView *)newestMusicCollectionView {
     if (!_newestMusicCollectionView) {
-        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
-        layout.sectionInset = UIEdgeInsetsMake(12, 14, 12, 14);
-        layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+        NSInteger width = (NSInteger)(KPortraitWidth * 0.83);
+
+        HomeMusicSheetLayout *layout = [[HomeMusicSheetLayout alloc] initWithSectionInset:UIEdgeInsetsMake(12, 11, 12, (KPortraitWidth - width)) andMiniLineSapce:10 andMiniInterItemSpace:10 andItemSize:CGSizeMake(width, 243)];
+
         _newestMusicCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
         _newestMusicCollectionView.backgroundColor = [UIColor clearColor];
         _newestMusicCollectionView.delegate = self;
@@ -830,9 +849,10 @@
 
 - (UICollectionView *)musicCollectionView {
     if (!_musicCollectionView) {
-        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
-        layout.sectionInset = UIEdgeInsetsMake(12, 14, 12, 14);
-        layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+        NSInteger width = (NSInteger)(KPortraitWidth * 0.83);
+
+        HomeMusicSheetLayout *layout = [[HomeMusicSheetLayout alloc] initWithSectionInset:UIEdgeInsetsMake(12, 11, 12, (KPortraitWidth - width)) andMiniLineSapce:10 andMiniInterItemSpace:10 andItemSize:CGSizeMake(width, 243)];
+
         _musicCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
         _musicCollectionView.backgroundColor = [UIColor clearColor];
         _musicCollectionView.delegate = self;
@@ -854,6 +874,21 @@
     return _musicCollectionView;
 }
 
+- (TenantDragView *)suspendButton {
+    if (!_suspendButton) {
+        _suspendButton = [[TenantDragView alloc] initWithFrame:CGRectMake(KPortraitWidth - TenantDragButtonWidth, KPortraitHeight - kTabBarHeight - TenantDragButtonHeight - 100, TenantDragButtonWidth, TenantDragButtonHeight)];
+        MJWeakSelf;
+        [_suspendButton clickAction:^{
+            [weakSelf showDragWindowDetail];
+        }];
+    }
+    return _suspendButton;
+}
+
+- (void)showDragWindowDetail {
+    SmallToolViewController *ctrl = [[SmallToolViewController alloc] init];
+    [self.navigationController pushViewController:ctrl animated:YES];
+}
 /*
 #pragma mark - Navigation
 

+ 18 - 0
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Model/HomeMusicSheetLayout.h

@@ -0,0 +1,18 @@
+//
+//  HomeMusicSheetLayout.h
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2023/9/20.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HomeMusicSheetLayout : UICollectionViewFlowLayout
+
+- (instancetype)initWithSectionInset:(UIEdgeInsets)insets andMiniLineSapce:(CGFloat)miniLineSpace andMiniInterItemSpace:(CGFloat)miniInterItemSpace andItemSize:(CGSize)itemSize;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 118 - 0
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/Model/HomeMusicSheetLayout.m

@@ -0,0 +1,118 @@
+//
+//  HomeMusicSheetLayout.m
+//  KulexiuForStudent
+//
+//  Created by 王智 on 2023/9/20.
+//
+
+#import "HomeMusicSheetLayout.h"
+
+@interface HomeMusicSheetLayout ()
+
+@property (nonatomic, assign) UIEdgeInsets sectionInsets;
+
+@property (nonatomic, assign) CGFloat miniLineSpace;
+
+@property (nonatomic, assign) CGFloat miniInterItemSpace;
+
+@property (nonatomic, assign) CGSize eachItemSize;
+
+@property (nonatomic, assign) BOOL scrollAnimation;/**<是否有分页动画*/
+
+@property (nonatomic, assign) CGPoint lastOffset;/**<记录上次滑动停止时contentOffset值*/
+
+@end
+
+@implementation HomeMusicSheetLayout
+
+/*初始化部分*/
+- (instancetype)initWithSectionInset:(UIEdgeInsets)insets andMiniLineSapce:(CGFloat)miniLineSpace andMiniInterItemSpace:(CGFloat)miniInterItemSpace andItemSize:(CGSize)itemSize {
+    self = [self init];
+    if (self) {
+        //基本尺寸/边距设置
+        self.sectionInsets = insets;
+        self.miniLineSpace = miniLineSpace;
+        self.miniInterItemSpace = miniInterItemSpace;
+        self.eachItemSize = itemSize;
+    }
+    return self;
+}
+
+- (instancetype)init {
+    self = [super init];
+    if (self) {
+        _lastOffset = CGPointZero;
+    }
+    return self;
+}
+
+-(void)prepareLayout {
+    [super prepareLayout];
+    self.scrollDirection = UICollectionViewScrollDirectionHorizontal;// 水平滚动
+    /*设置内边距*/
+    self.sectionInset = _sectionInsets;
+    self.minimumLineSpacing = _miniLineSpace;
+    self.minimumInteritemSpacing = _miniInterItemSpace;
+    self.itemSize = _eachItemSize;
+    /**
+     * decelerationRate系统给出了2个值:
+     * 1. UIScrollViewDecelerationRateFast(速率快)
+     * 2. UIScrollViewDecelerationRateNormal(速率慢)
+     * 此处设置滚动加速度率为fast,这样在移动cell后就会出现明显的吸附效果
+     */
+    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast;
+}
+
+- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity {
+    CGFloat pageSpace = [self stepSpace];//计算分页步距
+    CGFloat offsetMax = self.collectionView.contentSize.width - (pageSpace + self.sectionInset.right + self.miniLineSpace);
+    CGFloat offsetMin = 0;
+    /*修改之前记录的位置,如果小于最小contentsize或者大于最大contentsize则重置值*/
+    if (_lastOffset.x<offsetMin) {
+        _lastOffset.x = offsetMin;
+    }
+    else if (_lastOffset.x>offsetMax) {
+        _lastOffset.x = offsetMax;
+    }
+    
+    CGFloat offsetForCurrentPointX = ABS(proposedContentOffset.x - _lastOffset.x);//目标位移点距离当前点的距离绝对值
+    CGFloat velocityX = velocity.x;
+    BOOL direction = (proposedContentOffset.x - _lastOffset.x) > 0;//判断当前滑动方向,手指向左滑动:YES;手指向右滑动:NO
+    
+    if (offsetForCurrentPointX > pageSpace/8. && _lastOffset.x>=offsetMin && _lastOffset.x<=offsetMax) {
+        NSInteger pageFactor = 0;//分页因子,用于计算滑过的cell个数
+        if (velocityX != 0) {
+            /*滑动*/
+            pageFactor = ABS(velocityX);//速率越快,cell滑过数量越多
+        }
+        else {
+            /**
+             * 拖动
+             * 没有速率,则计算:位移差/默认步距=分页因子
+             */
+            pageFactor = ABS(offsetForCurrentPointX/pageSpace);
+        }
+        
+        /*设置pageFactor上限为2, 防止滑动速率过大,导致翻页过多*/
+        pageFactor = pageFactor<1?1:(pageFactor<3?1:2);
+        
+        CGFloat pageOffsetX = pageSpace*pageFactor;
+        proposedContentOffset = CGPointMake(_lastOffset.x + (direction?pageOffsetX:-pageOffsetX), proposedContentOffset.y);
+    }
+    else {
+        /*滚动距离,小于翻页步距一半,则不进行翻页操作*/
+        proposedContentOffset = CGPointMake(_lastOffset.x, _lastOffset.y);
+    }
+    
+    //记录当前最新位置
+    _lastOffset.x = proposedContentOffset.x;
+    return proposedContentOffset;
+}
+
+/**
+ *计算每滑动一页的距离:步距
+ */
+-(CGFloat)stepSpace {
+    return self.eachItemSize.width + self.miniLineSpace;
+}
+@end

+ 2 - 0
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/MoreMusicPage/MorePageSearchView.m

@@ -12,6 +12,7 @@
 @property (nonatomic, copy) MorePageSearchCallback callback;
 
 @property (weak, nonatomic) IBOutlet UITextField *searchField;
+@property (weak, nonatomic) IBOutlet UIButton *searchButton;
 
 @end
 
@@ -20,6 +21,7 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
     self.searchField.delegate = self;
+    self.searchButton.backgroundColor = HexRGB(0xFF5993);
 }
 
 + (instancetype)shareInstance {

+ 2 - 1
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/MoreMusicPage/MorePageSearchView.xib

@@ -33,7 +33,7 @@
                                         <constraint firstAttribute="height" constant="16" id="yUb-l9-bpt"/>
                                     </constraints>
                                 </imageView>
-                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入专辑关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Mx6-O3-EOH">
+                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入歌曲关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Mx6-O3-EOH">
                                     <rect key="frame" x="34" y="0.0" width="268" height="34"/>
                                     <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                     <textInputTraits key="textInputTraits"/>
@@ -113,6 +113,7 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="searchButton" destination="cif-Ba-pW6" id="pW3-S6-GLO"/>
                 <outlet property="searchField" destination="Mx6-O3-EOH" id="sHc-B1-DKV"/>
                 <outlet property="subjectLabel" destination="74R-HR-vA5" id="rNe-ss-8uo"/>
             </connections>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/TenantDarkSearhView.m

@@ -41,7 +41,7 @@
 }
 
 + (CGFloat)getViewHeight {
-    return 58.0f;
+    return 55.0f;
 }
 /*
 // Only override drawRect: if you perform custom drawing.

+ 4 - 4
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/TenantDarkSearhView.xib

@@ -10,11 +10,11 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="TenantDarkSearhView">
-            <rect key="frame" x="0.0" y="0.0" width="393" height="57"/>
+            <rect key="frame" x="0.0" y="0.0" width="393" height="53"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QjE-wR-eOf">
-                    <rect key="frame" x="13" y="11.666666666666664" width="367" height="34"/>
+                    <rect key="frame" x="13" y="3" width="367" height="34"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tenant_search_grey" translatesAutoresizingMaskIntoConstraints="NO" id="CID-Fh-aZh">
                             <rect key="frame" x="12" y="10" width="16" height="16"/>
@@ -49,7 +49,7 @@
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="QjE-wR-eOf" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="96I-UP-U7F"/>
+                <constraint firstAttribute="bottom" secondItem="QjE-wR-eOf" secondAttribute="bottom" constant="16" id="6wa-op-bNQ"/>
                 <constraint firstAttribute="trailing" secondItem="QjE-wR-eOf" secondAttribute="trailing" constant="13" id="KB6-Zb-2as"/>
                 <constraint firstItem="QjE-wR-eOf" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="13" id="dpw-AS-upb"/>
             </constraints>
@@ -59,7 +59,7 @@
             <connections>
                 <outlet property="searchField" destination="Dpu-mW-Jkm" id="478-jQ-VeT"/>
             </connections>
-            <point key="canvasLocation" x="127.48091603053435" y="-132.74647887323945"/>
+            <point key="canvasLocation" x="127.48091603053435" y="-131.69014084507043"/>
         </view>
     </objects>
     <resources>

+ 11 - 9
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/Controller/INSSettingViewController.m

@@ -224,23 +224,25 @@
     [titleAtt addAttribute:NSForegroundColorAttributeName value:HexRGB(0x777777) range:NSMakeRange(0, titleString.length)];
     [alertVC setValue:titleAtt forKey:@"attributedMessage"];
     
+    UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"男" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+        
+        self.bodyView.userSex.text = @"男";
+        self.userSex = @"1";
+        [self modifyUserSex];
+    }];
+    [actionOne setValue:HexRGB(0x333333) forKey:@"_titleTextColor"];
+    [alertVC addAction:actionOne];
+    
     UIAlertAction *actionTwo = [UIAlertAction actionWithTitle:@"女" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
         
         self.bodyView.userSex.text = @"女";
         self.userSex = @"0";
         [self modifyUserSex];
     }];
-    [actionTwo setValue:CLIENT_THEMECOLOR forKey:@"_titleTextColor"];
+    [actionTwo setValue:HexRGB(0x333333) forKey:@"_titleTextColor"];
     [alertVC addAction:actionTwo];
     
-    UIAlertAction *actionOne = [UIAlertAction actionWithTitle:@"男" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
-        
-        self.bodyView.userSex.text = @"男";
-        self.userSex = @"1";
-        [self modifyUserSex];
-    }];
-    [actionOne setValue:HexRGB(0x131415) forKey:@"_titleTextColor"];
-    [alertVC addAction:actionOne];
+    
     
     UIAlertAction *cancleAlert = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
         

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/View/INSSettingBodyView.xib

@@ -141,7 +141,7 @@
                                         <constraint firstAttribute="height" constant="1" id="xTI-A0-bEz"/>
                                     </constraints>
                                 </view>
-                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_next" translatesAutoresizingMaskIntoConstraints="NO" id="btE-3X-j5t">
+                                <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_next" translatesAutoresizingMaskIntoConstraints="NO" id="btE-3X-j5t">
                                     <rect key="frame" x="347" y="23" width="12" height="12"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="12" id="K6K-U8-cFN"/>

+ 22 - 22
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Mine/View/InstitutionMineBodyView.xib

@@ -200,8 +200,8 @@
                                 </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="Nlb-bG-jKG">
-                            <rect key="frame" x="107.99999999999999" y="91" width="61.333333333333329" height="28"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nlb-bG-jKG">
+                            <rect key="frame" x="108" y="91" width="0.0" height="28"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="28" id="KND-9T-wMM"/>
                             </constraints>
@@ -248,7 +248,7 @@
                             </userDefinedRuntimeAttributes>
                         </view>
                         <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="institution_mineMember_tag" translatesAutoresizingMaskIntoConstraints="NO" id="j1E-FX-DSh">
-                            <rect key="frame" x="175.33333333333334" y="96" width="44" height="17"/>
+                            <rect key="frame" x="114" y="96" width="44" height="17"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="44" id="F0Y-OI-vHn"/>
                                 <constraint firstAttribute="height" constant="17" id="iHY-he-VUA"/>
@@ -302,7 +302,7 @@
                                     </constraints>
                                 </imageView>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我的曲库" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="llV-N6-iUM">
-                                    <rect key="frame" x="12.000000000000004" y="43" width="49.333333333333343" height="16"/>
+                                    <rect key="frame" x="12.000000000000004" y="38" width="49.333333333333343" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="16" id="EhM-4l-Q4H"/>
                                     </constraints>
@@ -314,8 +314,8 @@
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <gestureRecognizers/>
                             <constraints>
-                                <constraint firstAttribute="bottom" secondItem="llV-N6-iUM" secondAttribute="bottom" constant="15" id="DCG-Im-C1c"/>
-                                <constraint firstItem="llV-N6-iUM" firstAttribute="top" secondItem="z6K-YU-QmJ" secondAttribute="bottom" constant="9" id="GgK-o3-OnV"/>
+                                <constraint firstItem="z6K-YU-QmJ" firstAttribute="top" secondItem="Sny-pb-TWZ" secondAttribute="top" constant="2" id="Eyg-6z-rnQ"/>
+                                <constraint firstItem="llV-N6-iUM" firstAttribute="top" secondItem="z6K-YU-QmJ" secondAttribute="bottom" constant="4" id="GgK-o3-OnV"/>
                                 <constraint firstItem="llV-N6-iUM" firstAttribute="centerX" secondItem="z6K-YU-QmJ" secondAttribute="centerX" id="Tl7-CN-zla"/>
                                 <constraint firstItem="z6K-YU-QmJ" firstAttribute="centerX" secondItem="Sny-pb-TWZ" secondAttribute="centerX" id="hNI-eo-HfF"/>
                             </constraints>
@@ -327,14 +327,14 @@
                             <rect key="frame" x="73.333333333333343" y="51" width="73.333333333333343" height="74"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="insititution_mine_eveluate" translatesAutoresizingMaskIntoConstraints="NO" id="EEW-IB-hg7">
-                                    <rect key="frame" x="20.666666666666671" y="1" width="32" height="32"/>
+                                    <rect key="frame" x="20.666666666666671" y="2" width="32" height="32"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="32" id="mbZ-LU-MyN"/>
                                         <constraint firstAttribute="width" constant="32" id="rgr-gt-DRv"/>
                                     </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="tKv-6K-2Lh">
-                                    <rect key="frame" x="12.000000000000004" y="43" width="49.333333333333343" height="16"/>
+                                    <rect key="frame" x="12.000000000000004" y="38" width="49.333333333333343" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="16" id="4PT-bu-Tbp"/>
                                     </constraints>
@@ -346,9 +346,9 @@
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <gestureRecognizers/>
                             <constraints>
-                                <constraint firstItem="tKv-6K-2Lh" firstAttribute="top" secondItem="EEW-IB-hg7" secondAttribute="bottom" constant="10" id="P9I-8f-mp0"/>
+                                <constraint firstItem="EEW-IB-hg7" firstAttribute="top" secondItem="XWh-l9-hOS" secondAttribute="top" constant="2" id="M4E-fM-bQj"/>
+                                <constraint firstItem="tKv-6K-2Lh" firstAttribute="top" secondItem="EEW-IB-hg7" secondAttribute="bottom" constant="4" id="P9I-8f-mp0"/>
                                 <constraint firstItem="EEW-IB-hg7" firstAttribute="centerX" secondItem="XWh-l9-hOS" secondAttribute="centerX" id="fJS-9g-8tg"/>
-                                <constraint firstAttribute="bottom" secondItem="tKv-6K-2Lh" secondAttribute="bottom" constant="15" id="gNs-1V-VX5"/>
                                 <constraint firstItem="tKv-6K-2Lh" firstAttribute="centerX" secondItem="EEW-IB-hg7" secondAttribute="centerX" id="lsU-HV-gVb"/>
                             </constraints>
                             <connections>
@@ -359,14 +359,14 @@
                             <rect key="frame" x="146.66666666666666" y="51" width="73.666666666666657" height="74"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="insititution_mine_order" translatesAutoresizingMaskIntoConstraints="NO" id="Dd1-kz-ACR">
-                                    <rect key="frame" x="21" y="1" width="32" height="32"/>
+                                    <rect key="frame" x="21" y="2" width="32" height="32"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="32" id="QGk-JB-c5l"/>
                                         <constraint firstAttribute="width" constant="32" id="uVK-ef-irC"/>
                                     </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="CCv-8F-puO">
-                                    <rect key="frame" x="12.333333333333346" y="43" width="49.333333333333343" height="16"/>
+                                    <rect key="frame" x="12.333333333333346" y="38" width="49.333333333333343" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="16" id="teG-Pd-LeH"/>
                                     </constraints>
@@ -380,8 +380,8 @@
                             <constraints>
                                 <constraint firstItem="Dd1-kz-ACR" firstAttribute="centerX" secondItem="9n9-51-GnM" secondAttribute="centerX" id="3kU-J2-jIZ"/>
                                 <constraint firstItem="CCv-8F-puO" firstAttribute="centerX" secondItem="Dd1-kz-ACR" secondAttribute="centerX" id="FcT-JT-gwR"/>
-                                <constraint firstAttribute="bottom" secondItem="CCv-8F-puO" secondAttribute="bottom" constant="15" id="Nvl-xo-ggx"/>
-                                <constraint firstItem="CCv-8F-puO" firstAttribute="top" secondItem="Dd1-kz-ACR" secondAttribute="bottom" constant="10" id="U88-O8-Nhn"/>
+                                <constraint firstItem="Dd1-kz-ACR" firstAttribute="top" secondItem="9n9-51-GnM" secondAttribute="top" constant="2" id="Jd2-pU-WJ5"/>
+                                <constraint firstItem="CCv-8F-puO" firstAttribute="top" secondItem="Dd1-kz-ACR" secondAttribute="bottom" constant="4" id="U88-O8-Nhn"/>
                             </constraints>
                             <connections>
                                 <outletCollection property="gestureRecognizers" destination="vKx-8d-UTl" appends="YES" id="cu6-d5-Rgx"/>
@@ -391,14 +391,14 @@
                             <rect key="frame" x="220.33333333333334" y="51" width="73.333333333333343" height="74"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="insititution_mine_rank" translatesAutoresizingMaskIntoConstraints="NO" id="6o5-QV-pgd">
-                                    <rect key="frame" x="20.666666666666657" y="1" width="32" height="32"/>
+                                    <rect key="frame" x="20.666666666666657" y="2" width="32" height="32"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="32" id="Jek-gw-t3C"/>
                                         <constraint firstAttribute="height" constant="32" id="cg2-2G-gFg"/>
                                     </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="Dva-Em-ug7">
-                                    <rect key="frame" x="18" y="43" width="37" height="16"/>
+                                    <rect key="frame" x="18" y="38" width="37" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="16" id="JKR-Wd-nWu"/>
                                     </constraints>
@@ -411,8 +411,8 @@
                             <gestureRecognizers/>
                             <constraints>
                                 <constraint firstItem="Dva-Em-ug7" firstAttribute="centerX" secondItem="6o5-QV-pgd" secondAttribute="centerX" id="1sj-du-pWJ"/>
-                                <constraint firstAttribute="bottom" secondItem="Dva-Em-ug7" secondAttribute="bottom" constant="15" id="feT-XR-62H"/>
-                                <constraint firstItem="Dva-Em-ug7" firstAttribute="top" secondItem="6o5-QV-pgd" secondAttribute="bottom" constant="10" id="r2Y-yN-XbS"/>
+                                <constraint firstItem="Dva-Em-ug7" firstAttribute="top" secondItem="6o5-QV-pgd" secondAttribute="bottom" constant="4" id="r2Y-yN-XbS"/>
+                                <constraint firstItem="6o5-QV-pgd" firstAttribute="top" secondItem="iBV-4n-9tN" secondAttribute="top" constant="2" id="x34-0c-dua"/>
                                 <constraint firstItem="6o5-QV-pgd" firstAttribute="centerX" secondItem="iBV-4n-9tN" secondAttribute="centerX" id="zwM-Ns-v9R"/>
                             </constraints>
                             <connections>
@@ -432,14 +432,14 @@
                             <rect key="frame" x="293.66666666666669" y="51" width="73.333333333333314" height="74"/>
                             <subviews>
                                 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="insititution_mine_code" translatesAutoresizingMaskIntoConstraints="NO" id="fq9-6v-NL0">
-                                    <rect key="frame" x="20.666666666666629" y="1" width="32" height="32"/>
+                                    <rect key="frame" x="20.666666666666629" y="2" width="32" height="32"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="32" id="WSx-ZO-tIf"/>
                                         <constraint firstAttribute="height" constant="32" id="e4d-3b-Gdb"/>
                                     </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="XRm-Fc-bnp">
-                                    <rect key="frame" x="18" y="43" width="37" height="16"/>
+                                    <rect key="frame" x="18" y="38" width="37" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="16" id="mj3-pq-ivj"/>
                                     </constraints>
@@ -451,10 +451,10 @@
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <gestureRecognizers/>
                             <constraints>
+                                <constraint firstItem="fq9-6v-NL0" firstAttribute="top" secondItem="JPB-oG-7OI" secondAttribute="top" constant="2" id="3Ba-Hc-2g2"/>
                                 <constraint firstItem="XRm-Fc-bnp" firstAttribute="centerX" secondItem="fq9-6v-NL0" secondAttribute="centerX" id="4IJ-o8-sfw"/>
-                                <constraint firstItem="XRm-Fc-bnp" firstAttribute="top" secondItem="fq9-6v-NL0" secondAttribute="bottom" constant="10" id="MHf-qT-Fzl"/>
+                                <constraint firstItem="XRm-Fc-bnp" firstAttribute="top" secondItem="fq9-6v-NL0" secondAttribute="bottom" constant="4" id="MHf-qT-Fzl"/>
                                 <constraint firstItem="fq9-6v-NL0" firstAttribute="centerX" secondItem="JPB-oG-7OI" secondAttribute="centerX" id="VPs-WG-Ooh"/>
-                                <constraint firstAttribute="bottom" secondItem="XRm-Fc-bnp" secondAttribute="bottom" constant="15" id="p7H-Sb-dJR"/>
                             </constraints>
                             <connections>
                                 <outletCollection property="gestureRecognizers" destination="f2V-Zn-5hZ" appends="YES" id="Ubv-3d-jzI"/>

+ 4 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/ChatAddressViewController.m

@@ -40,7 +40,7 @@
     self.view.backgroundColor = [UIColor clearColor];
 
     _categoryView = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 10)];
-    _categoryView.backgroundColor = HexRGB(0xf6f8f9);
+    _categoryView.backgroundColor = [UIColor clearColor];
     self.categoryView.titles = self.titles;
     self.categoryView.delegate = self;
     self.categoryView.titleFont = [UIFont systemFontOfSize:16.0f];
@@ -58,6 +58,9 @@
     self.pagerView.isListHorizontalScrollEnabled = NO; // 不允许左右滑动
     [self.view addSubview:self.pagerView];
     self.categoryView.listContainer = (id<JXCategoryViewListContainer>)self.pagerView.listContainerView;
+    
+    self.pagerView.listContainerView.backgroundColor = [UIColor clearColor];
+    self.pagerView.listContainerView.listCellBackgroundColor = [UIColor clearColor];
 }
 
 - (void)searchRequest:(NSString *)searchKey {

+ 11 - 0
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/ChatViewController.m

@@ -72,6 +72,16 @@
 
 - (void)configUI {
     [self.scrollView removeFromSuperview];
+    if ([UserDefault(TENANT_ID) integerValue] > 0) { // 机构背景
+        
+        UIImage *bgImage = [UIImage imageNamed:@"tenant_chatBg"];
+        CGFloat height = bgImage.size.height / bgImage.size.width * KPortraitWidth;
+        UIImageView *imageView = [[UIImageView alloc] initWithImage:bgImage];
+        imageView.frame = CGRectMake(0, 0, KPortraitWidth, height);
+        [self.view addSubview:imageView];
+    }
+    
+    
     [self.view addSubview:self.navView];
     
     CGFloat topSpace = kNaviBarHeight;
@@ -84,6 +94,7 @@
     self.myCategoryView.titleColor = HexRGB(0x777777);
     self.myCategoryView.titleColorGradientEnabled = YES;
     self.myCategoryView.hidden = YES;
+    self.myCategoryView.backgroundColor = [UIColor clearColor];
     [self.view addSubview:self.categoryView];
     [self.view addSubview:self.listContainerView];
 }

+ 11 - 4
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSChatListViewController.m

@@ -35,14 +35,18 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view.
+    [self.scrollView removeFromSuperview];
+    self.view.backgroundColor = [UIColor clearColor];
     self.listVC = [[KSConversationListController alloc] init];
-    // 把 TUIConversationListController 添加到自己的 ViewController
+    self.listVC.isShowBanner = NO;
+
     [self addChildViewController:self.listVC];
     self.listVC.delegate = self;
     [self.view addSubview:self.listVC.view];
     [self.listVC.view mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.top.bottom.mas_equalTo(self.view);
     }];
+    self.listVC.tableViewForAll.backgroundColor = [UIColor clearColor];
     self.listVC.tableViewForAll.tipsMsgWhenNoConversation = @"暂无内容~";
     [self.listVC.tableViewForAll.tipsView setImage:[UIImage imageNamed:CLIENT_EMPTY_IMG]];
     [self.listVC.tableViewContainer mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -54,9 +58,11 @@
     }];
     [self updateTipsFrame];
     _searchBar = [KSChatListSearchView shareInstance];
+    _searchBar.backgroundColor = [UIColor clearColor];
     _searchBar.isClickSearch = YES;
     [_searchBar configText:@"查找聊天记录"];
-    _searchBar.frame = CGRectMake(0, 0, KPortraitWidth, 60);
+    CGFloat height = [self.searchBar getViewHeight];
+    _searchBar.frame = CGRectMake(0, 0, KPortraitWidth, height);
     MJWeakSelf;
     [_searchBar topSearchCallback:^{
         [weakSelf searchAction];
@@ -65,7 +71,7 @@
     
     [self.searchBar mas_makeConstraints:^(MASConstraintMaker *make) {
         make.left.right.top.mas_equalTo(self.view);
-        make.height.mas_equalTo(60);
+        make.height.mas_equalTo(height);
     }];
 }
 
@@ -73,7 +79,8 @@
     UIImage *image = [UIImage imageNamed:CLIENT_EMPTY_IMG];
     [self.listVC.tableViewForAll.tipsView mas_remakeConstraints:^(MASConstraintMaker *make) {
         make.centerX.mas_equalTo(self.listVC.tableViewForAll);
-        make.top.mas_equalTo(self.listVC.tableViewForAll.mas_top).offset(40);
+//        make.centerY.mas_equalTo(self.listVC.tableViewForAll.mas_centerY).offset(-68);
+        make.top.mas_equalTo(self.listVC.tableViewForAll.mas_top).offset(80);
         make.width.mas_equalTo(image.size.width);
         make.height.mas_equalTo(image.size.height);
     }];

+ 14 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/Controller/KSConversationListController.m

@@ -6,7 +6,8 @@
 //
 
 #import "KSConversationListController.h"
-
+#import "TUIMessageDataProvider.h"
+#import "TUIMessageCellConfig.h"
 
 @interface KSConversationListController ()
 
@@ -15,7 +16,19 @@
 
 @implementation KSConversationListController
 
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    self.view.backgroundColor = [UIColor clearColor];
+}
+
++ (void)initialize {
+    [TUIMessageDataProvider setDataSourceClass:self];
+}
 
+#pragma mark - TUIMessageBaseDataProviderDataSource
++ (Class)onGetCustomMessageCellDataClass:(NSString *)businessID {
+    return [TUIMessageCellConfig getCustomMessageCellDataClass:businessID];
+}
 @end
 
 

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/Controller/GroupMemberViewController.m

@@ -126,8 +126,8 @@
     [self.scrollView removeFromSuperview];
     [self.view addSubview:self.tableView];
     SCIndexViewConfiguration *indexConfiguration = [SCIndexViewConfiguration configuration];
-    indexConfiguration.indexItemSelectedBackgroundColor = CLIENT_THEMECOLOR;
-    indexConfiguration.indicatorBackgroundColor = CLIENT_THEMECOLOR;
+    indexConfiguration.indexItemSelectedBackgroundColor = CLIENT_THEMESORTCOLOR;
+    indexConfiguration.indicatorBackgroundColor = CLIENT_THEMESORTCOLOR;
     self.tableView.sc_indexViewConfiguration = indexConfiguration;
     self.tableView.sc_translucentForTableViewInNavigationBar = YES;
 }

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/View/GroupSettingBodyView.m

@@ -164,7 +164,7 @@ typedef void(^ChooseMemberCallback)(NSString *targetId);
         self.memberCount.text = @"查看全部群成员";
     }
     else {
-        self.memberCount.text = [NSString stringWithFormat:@"查看全部%zd名群成员", studentArray.count];
+        self.memberCount.text = [NSString stringWithFormat:@"查看%zd名群成员", studentArray.count];
     }
     
     [self removeAllSubviews:self.memberView];

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/Group/View/GroupSettingBodyView.xib

@@ -186,7 +186,7 @@
                             <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_next_grey" translatesAutoresizingMaskIntoConstraints="NO" id="dH8-35-u9Y">
+                        <imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="mine_next_grey" translatesAutoresizingMaskIntoConstraints="NO" id="dH8-35-u9Y">
                             <rect key="frame" x="392" y="20.5" width="7" height="14"/>
                             <constraints>
                                 <constraint firstAttribute="width" constant="7" id="kGp-Em-Btf"/>

+ 6 - 6
KulexiuForStudent/KulexiuForStudent/Module/Chat/GroupNotice/View/GroupNoticeCell.m

@@ -49,14 +49,14 @@
     if ([source isKindOfClass:[GroupNoticeModel class]]) {
         GroupNoticeModel *model = source;
         self.userName.text = [NSString returnNoNullStringWithString:model.username];
-//        [self.userLogo sd_setImageWithURL:[NSURL URLWithString:[model.avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USER_LOGO_RECTANGLE]];
-        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
KulexiuForStudent/KulexiuForStudent/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="183" id="KGk-i7-Jjw" customClass="GroupNoticeCell">
+            <rect key="frame" x="0.0" y="0.0" width="359" height="183"/>
             <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="183"/>
                 <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="171"/>
+                        <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="64"/>
+                                <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="155" 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="215.29017857142856"/>
         </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
KulexiuForStudent/KulexiuForStudent/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
KulexiuForStudent/KulexiuForStudent/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) {

+ 17 - 17
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ChatAddressBodyView.m

@@ -13,15 +13,15 @@
 #import "GroupListModel.h"
 #import "GroupListViewCell.h"
 #import "ContractListCell.h"
-#import "StateView.h"
 #import "Reachability.h"
 #import "FriendListModel.h"
 #import "KSChatListSearchView.h"
 #import <ImSDK_Plus/V2TIMManager.h>
+#import "KSEmptyStatusView.h"
 
 @interface ChatAddressBodyView ()<UITableViewDelegate,UITableViewDataSource>
 
-@property (nonatomic, strong) StateView *promptView;
+@property (nonatomic, strong) KSEmptyStatusView *promptView;
 @property (nonatomic, strong) UIView *promptPlaceView;
 
 @property (nonatomic, assign) BOOL networkAvaiable; // 网络是否可用
@@ -52,9 +52,9 @@
 - (instancetype)initWithFrame:(CGRect)frame {
     self = [super initWithFrame:frame];
     if (self) {
-        self.backgroundColor = HexRGB(0xf6f8f9);
+        self.backgroundColor = [UIColor clearColor];
         self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
-        self.tableView.backgroundColor = HexRGB(0xf6f8f9);
+        self.tableView.backgroundColor = [UIColor clearColor];
         self.tableView.showsVerticalScrollIndicator = NO;
 
         self.tableView.dataSource = self;
@@ -258,8 +258,8 @@
     [self.studentArray removeAllObjects];
     self.sourceIndexArray = [NSMutableArray array];
     SCIndexViewConfiguration *indexConfiguration = [SCIndexViewConfiguration configuration];
-    indexConfiguration.indexItemSelectedBackgroundColor = CLIENT_THEMECOLOR;
-    indexConfiguration.indicatorBackgroundColor = CLIENT_THEMECOLOR;
+    indexConfiguration.indexItemSelectedBackgroundColor = CLIENT_THEMESORTCOLOR;
+    indexConfiguration.indicatorBackgroundColor = CLIENT_THEMESORTCOLOR;
     self.tableView.sc_indexViewConfiguration = indexConfiguration;
     self.tableView.sc_indexViewDataSource = self.sourceIndexArray;
     [self.tableView reloadData];
@@ -427,18 +427,14 @@
 }
 
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
-    if (self.selectIndex == 0) {
-        return CGFLOAT_MIN;
-    }
+
     return 30;
 }
 
 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
-    if (self.selectIndex == 0) {
-        return [UIView new];
-    }
+
     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 30)];
-    view.backgroundColor = HexRGB(0xf6f8f9);
+    view.backgroundColor = [UIColor clearColor];
     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(24, 0, kScreenWidth - 48, 30)];
     label.textColor = HexRGB(0x999999);
     label.font = [UIFont systemFontOfSize:16.0f weight:UIFontWeightMedium];
@@ -464,15 +460,18 @@
         [self.promptView removeFromSuperview];
     }
     else {
-        self.promptView = [[StateView alloc]init];
-        self.promptView.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - 300);
+        self.promptView = [KSEmptyStatusView shareInstance];
     }
     _promptPlaceView = view;
     //当请求不到数据时 ,自定义提示view 将会出现;
-    self.promptView.imageName = imgName;
     self.promptView.alpha = 0.0f;
-    [self.promptView setText:promptString];
+    [self.promptView configImageName:imgName desc:promptString topHeight:80];
     [view addSubview:self.promptView];
+    [self.promptView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.mas_equalTo(view);
+        make.width.mas_equalTo(view);
+        make.height.mas_equalTo(view);
+    }];
 }
 
 // 结束刷新后调用方法
@@ -545,6 +544,7 @@
 - (KSChatListSearchView *)searchView {
     if (!_searchView) {
         _searchView = [KSChatListSearchView shareInstance];
+        _searchView.backgroundColor = [UIColor clearColor];
         MJWeakSelf;
         [_searchView topSearchCallback:^{
             [weakSelf searchAction];

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/ChatNavView.xib

@@ -59,11 +59,11 @@
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="e7v-cD-P17">
-                                            <rect key="frame" x="55" y="11.666666666666664" width="8" height="8"/>
+                                            <rect key="frame" x="53" y="11.666666666666664" width="8" height="8"/>
                                             <subviews>
                                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tlA-Ri-XTs">
                                                     <rect key="frame" x="1" y="1" width="6" height="6"/>
-                                                    <color key="backgroundColor" red="0.97254901959999995" green="0.31372549020000001" blue="0.26274509800000001" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <color key="backgroundColor" red="1" green="0.062745098039215685" blue="0.21176470588235294" alpha="1" colorSpace="calibratedRGB"/>
                                                     <userDefinedRuntimeAttributes>
                                                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                                                             <real key="value" value="3"/>
@@ -91,7 +91,7 @@
                                     <gestureRecognizers/>
                                     <constraints>
                                         <constraint firstAttribute="trailing" secondItem="9iF-re-XDo" secondAttribute="trailing" constant="15" id="Fl6-bp-yhk"/>
-                                        <constraint firstItem="e7v-cD-P17" firstAttribute="leading" secondItem="9iF-re-XDo" secondAttribute="trailing" constant="2" id="G9I-NO-XP8"/>
+                                        <constraint firstItem="e7v-cD-P17" firstAttribute="leading" secondItem="9iF-re-XDo" secondAttribute="trailing" id="G9I-NO-XP8"/>
                                         <constraint firstItem="9iF-re-XDo" firstAttribute="centerX" secondItem="U5I-bi-mi0" secondAttribute="centerX" id="XaM-yT-3tz"/>
                                         <constraint firstAttribute="width" constant="68" id="eHA-34-qc6"/>
                                         <constraint firstItem="9iF-re-XDo" firstAttribute="leading" secondItem="U5I-bi-mi0" secondAttribute="leading" constant="15" id="eTg-u1-zWL"/>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.m

@@ -60,7 +60,7 @@
 }
 
 - (CGFloat)getViewHeight {
-    return 60.0f;
+    return 58.0f;
 }
 
 /*

+ 13 - 17
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.xib

@@ -10,27 +10,23 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="KSChatListSearchView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="79"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="58"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kx9-xj-kfl">
-                    <rect key="frame" x="14" y="21.5" width="386" height="36"/>
+                    <rect key="frame" x="13" y="11" width="388" height="34"/>
                     <subviews>
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="search_green" translatesAutoresizingMaskIntoConstraints="NO" id="BoO-sd-jlY">
-                            <rect key="frame" x="12" y="10.5" width="15" height="15"/>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="15" id="Dql-bG-Ufd"/>
-                                <constraint firstAttribute="height" constant="15" id="MAI-oj-HQ7"/>
-                            </constraints>
+                            <rect key="frame" x="12" y="9" width="15" height="16"/>
                         </imageView>
                         <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="查找聊天记录" adjustsFontSizeToFit="NO" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="s9n-ZY-b4Y">
-                            <rect key="frame" x="38" y="0.0" width="274" height="36"/>
+                            <rect key="frame" x="33" y="0.0" width="286" height="34"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <textInputTraits key="textInputTraits"/>
                         </textField>
                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="va7-49-aYd">
-                            <rect key="frame" x="322" y="4" width="56" height="28"/>
+                            <rect key="frame" x="329" y="3" width="56" height="28"/>
                             <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="28" id="RD8-Dh-zm8"/>
@@ -51,28 +47,28 @@
                     </subviews>
                     <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                     <constraints>
-                        <constraint firstAttribute="height" constant="36" id="FsK-2F-MNw"/>
-                        <constraint firstItem="s9n-ZY-b4Y" firstAttribute="leading" secondItem="BoO-sd-jlY" secondAttribute="trailing" constant="11" id="Pf8-lw-u40"/>
+                        <constraint firstAttribute="height" constant="34" id="FsK-2F-MNw"/>
+                        <constraint firstItem="s9n-ZY-b4Y" firstAttribute="leading" secondItem="BoO-sd-jlY" secondAttribute="trailing" constant="6" id="Pf8-lw-u40"/>
                         <constraint firstItem="va7-49-aYd" firstAttribute="centerY" secondItem="Kx9-xj-kfl" secondAttribute="centerY" id="Ph1-VY-Ex0"/>
                         <constraint firstItem="va7-49-aYd" firstAttribute="leading" secondItem="s9n-ZY-b4Y" secondAttribute="trailing" constant="10" id="RtE-vh-9R8"/>
                         <constraint firstItem="s9n-ZY-b4Y" firstAttribute="top" secondItem="Kx9-xj-kfl" secondAttribute="top" id="cot-RC-bXw"/>
                         <constraint firstItem="BoO-sd-jlY" firstAttribute="leading" secondItem="Kx9-xj-kfl" secondAttribute="leading" constant="12" id="jlr-KB-WGx"/>
                         <constraint firstAttribute="bottom" secondItem="s9n-ZY-b4Y" secondAttribute="bottom" id="nE7-ME-kcc"/>
                         <constraint firstItem="BoO-sd-jlY" firstAttribute="centerY" secondItem="Kx9-xj-kfl" secondAttribute="centerY" id="ttB-3o-wap"/>
-                        <constraint firstAttribute="trailing" secondItem="va7-49-aYd" secondAttribute="trailing" constant="8" id="zow-Ud-FXd"/>
+                        <constraint firstAttribute="trailing" secondItem="va7-49-aYd" secondAttribute="trailing" constant="3" id="zow-Ud-FXd"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                            <real key="value" value="18"/>
+                            <real key="value" value="17"/>
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
             </subviews>
             <color key="backgroundColor" red="0.96470588235294119" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
             <constraints>
-                <constraint firstAttribute="trailing" secondItem="Kx9-xj-kfl" secondAttribute="trailing" constant="14" id="1jW-wv-IGM"/>
-                <constraint firstItem="Kx9-xj-kfl" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="7m9-I5-Iib"/>
-                <constraint firstItem="Kx9-xj-kfl" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="xAf-a8-h71"/>
+                <constraint firstAttribute="trailing" secondItem="Kx9-xj-kfl" secondAttribute="trailing" constant="13" id="1jW-wv-IGM"/>
+                <constraint firstItem="Kx9-xj-kfl" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" constant="-1" id="7m9-I5-Iib"/>
+                <constraint firstItem="Kx9-xj-kfl" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="13" id="xAf-a8-h71"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>