Explorar o código

替换个人中心按钮

Steven %!s(int64=2) %!d(string=hai) anos
pai
achega
632350b024
Modificáronse 49 ficheiros con 158 adicións e 31 borrados
  1. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate
  2. 4 4
      KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  3. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_goodsOrder.imageset/tool_goodsOrder@2x.png
  4. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_goodsOrder.imageset/tool_goodsOrder@3x.png
  5. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineIncome.imageset/tool_mineIncome@2x.png
  6. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineIncome.imageset/tool_mineIncome@3x.png
  7. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_minePage.imageset/tool_minePage@2x.png
  8. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_minePage.imageset/tool_minePage@3x.png
  9. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineStyle.imageset/tool_mineStyle@2x.png
  10. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineStyle.imageset/tool_mineStyle@3x.png
  11. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myCourse.imageset/tool_myCourse@2x.png
  12. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myCourse.imageset/tool_myCourse@3x.png
  13. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myMusic.imageset/tool_myMusic@2x.png
  14. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myMusic.imageset/tool_myMusic@3x.png
  15. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_evaluate.imageset/tool_evaluate@2x.png
  16. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_evaluate.imageset/tool_evaluate@3x.png
  17. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_homework.imageset/tool_homework@2x.png
  18. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_homework.imageset/tool_homework@3x.png
  19. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_liveCourse.imageset/tool_liveCourse@2x.png
  20. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_liveCourse.imageset/tool_liveCourse@3x.png
  21. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_musicRoom.imageset/tool_musicRoom@2x.png
  22. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_musicRoom.imageset/tool_musicRoom@3x.png
  23. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myAccompany.imageset/tool_myAccompany@2x.png
  24. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myAccompany.imageset/tool_myAccompany@3x.png
  25. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myLive.imageset/tool_myLive@2x.png
  26. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myLive.imageset/tool_myLive@3x.png
  27. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_videoCourse.imageset/tool_videoCourse@2x.png
  28. BIN=BIN
      KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_videoCourse.imageset/tool_videoCourse@3x.png
  29. 14 12
      KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewController.m
  30. 11 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m
  31. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.m
  32. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.m
  33. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.m
  34. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.m
  35. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.m
  36. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.m
  37. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.m
  38. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.m
  39. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.m
  40. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.m
  41. 6 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCShopRushMessage.m
  42. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomLikeCount.m
  43. 5 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.m
  44. 24 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Controller/MineViewController.m
  45. 5 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/View/UnderwayLiveCell.m
  46. 1 2
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineFunctionView.m
  47. 4 0
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineNavView.h
  48. 28 5
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineNavView.xib
  49. 1 1
      KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineTeachToolView.m

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


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

@@ -62,8 +62,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1674"
-            endingLineNumber = "1674"
+            startingLineNumber = "1685"
+            endingLineNumber = "1685"
             landmarkName = "-pauseLiveActionBack:"
             landmarkType = "7">
          </BreakpointContent>
@@ -94,8 +94,8 @@
             filePath = "KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1412"
-            endingLineNumber = "1412"
+            startingLineNumber = "1423"
+            endingLineNumber = "1423"
             landmarkName = "-sendMessage:displayMessage:callback:"
             landmarkType = "7">
          </BreakpointContent>

BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_goodsOrder.imageset/tool_goodsOrder@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_goodsOrder.imageset/tool_goodsOrder@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineIncome.imageset/tool_mineIncome@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineIncome.imageset/tool_mineIncome@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_minePage.imageset/tool_minePage@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_minePage.imageset/tool_minePage@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineStyle.imageset/tool_mineStyle@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_mineStyle.imageset/tool_mineStyle@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myCourse.imageset/tool_myCourse@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myCourse.imageset/tool_myCourse@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myMusic.imageset/tool_myMusic@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/NormalTool/tool_myMusic.imageset/tool_myMusic@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_evaluate.imageset/tool_evaluate@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_evaluate.imageset/tool_evaluate@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_homework.imageset/tool_homework@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_homework.imageset/tool_homework@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_liveCourse.imageset/tool_liveCourse@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_liveCourse.imageset/tool_liveCourse@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_musicRoom.imageset/tool_musicRoom@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_musicRoom.imageset/tool_musicRoom@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myAccompany.imageset/tool_myAccompany@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myAccompany.imageset/tool_myAccompany@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myLive.imageset/tool_myLive@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_myLive.imageset/tool_myLive@3x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_videoCourse.imageset/tool_videoCourse@2x.png


BIN=BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/TeachTool/tool_videoCourse.imageset/tool_videoCourse@3x.png


+ 14 - 12
KulexiuForTeacher/KulexiuForTeacher/Common/Base/BaseViewController.m

@@ -79,18 +79,20 @@
 }
 
 - (void)MBPShow:(NSString*)str{
-    [MBProgressHUD hideHUD];
-    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
-    hud.removeFromSuperViewOnHide =YES;
-    hud.mode = MBProgressHUDModeText;
-    hud.label.text = str;
-    hud.label.numberOfLines = 0;
-    hud.minSize = CGSizeMake(132.f, 60.0f);
-    hud.label.textColor = [UIColor whiteColor];
-    hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
-    hud.bezelView.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.8];
-    double hiddenTime = str.length > 15 ? 3.0f : 1.5f;
-    [hud hideAnimated:YES afterDelay:hiddenTime];
+    dispatch_main_async_safe(^{
+        [MBProgressHUD hideHUD];
+        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
+        hud.removeFromSuperViewOnHide =YES;
+        hud.mode = MBProgressHUDModeText;
+        hud.label.text = str;
+        hud.label.numberOfLines = 0;
+        hud.minSize = CGSizeMake(132.f, 60.0f);
+        hud.label.textColor = [UIColor whiteColor];
+        hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+        hud.bezelView.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.8];
+        double hiddenTime = str.length > 15 ? 3.0f : 1.5f;
+        [hud hideAnimated:YES afterDelay:hiddenTime];
+    })
 }
 
 

+ 11 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/LiveRoomViewController.m

@@ -1020,7 +1020,18 @@ typedef NS_ENUM(NSInteger, LIVEPAGE) {
                 if (room) {
                     strongSelf.room = room;
                     strongSelf.room.delegate = self;
+                    if (room.remoteUsers.count) {
+                        NSMutableArray *streamArray = [NSMutableArray array];
+                        NSMutableArray *remoteUserArray = [room.remoteUsers mutableCopy];
+                        for (RCRTCRemoteUser *user in remoteUserArray) {
+                            if (user.remoteStreams.count) {
+                                [streamArray addObjectsFromArray:user.remoteStreams];
+                                [strongSelf subscribeRemoteResource:streamArray];
+                            }
+                        }
+                    }
                 }
+                
                 // 订阅流数据
                 [strongSelf renderSeatView];
                 

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomDownSeat.m

@@ -22,7 +22,9 @@
     } else {
         [mutableDict setObject:@"" forKey:@"audienceId"];
     }
-    
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -34,6 +36,8 @@
     
     self.audienceName = [json stringValueForKey:@"audienceName"];
     self.audienceId = [json stringValueForKey:@"audienceId"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomEnter.m

@@ -21,6 +21,9 @@
     } else {
         [multableDict setObject:@"" forKey:@"userName"];
     }
+    if (self.senderUserInfo) {
+        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
 }
 
@@ -31,6 +34,8 @@
     if (json == nil) return;
     self.userId = [json stringValueForKey:@"userId"];
     self.userName = [json stringValueForKey:@"userName"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomKickOut.m

@@ -31,6 +31,9 @@
     } else {
         [mutableDict setObject:@"" forKey:@"targetName"];
     }
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -43,6 +46,8 @@
     self.userName = [json stringValueForKey:@"userName"];
     self.targetId = [json stringValueForKey:@"targetId"];
     self.targetName = [json stringValueForKey:@"targetName"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomLeave.m

@@ -21,6 +21,9 @@
     } else {
         [multableDict setObject:@"" forKey:@"userName"];
     }
+    if (self.senderUserInfo) {
+        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
 }
 
@@ -31,6 +34,8 @@
     if (json == nil) return;
     self.userId = [json stringValueForKey:@"userId"];
     self.userName = [json stringValueForKey:@"userName"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberCount.m

@@ -12,6 +12,9 @@
 - (NSData *)encode {
     NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
     [mutableDict setObject:@(self.count) forKey:@"count"];
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -21,6 +24,8 @@
     NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
     if (json == nil) return;
     self.count = [[json stringValueForKey:@"count"] intValue];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomMemberUp.m

@@ -12,6 +12,9 @@
 - (NSData *)encode {
     NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
     [mutableDict setObject:@(self.count) forKey:@"count"];
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -23,6 +26,8 @@
     
     self.count = [[json dictionaryValueForKey:@"content"] integerValueForKey:@"count"];
     NSLog(@"member count-----------%zd",_count);
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatApply.m

@@ -46,7 +46,9 @@
     else {
         [mutableDict setObject:@"" forKey:@"audienceSubjectName"];
     }
-    
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     [mutableDict setObject:@(self.type) forKey:@"type"];
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
@@ -63,6 +65,8 @@
     self.type = [json integerValueForKey:@"type"];
     self.audienceAvatar = [json stringValueForKey:@"audienceAvatar"];
     self.audienceSubjectName = [json stringValueForKey:@"audienceSubjectName"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomSeatResponse.m

@@ -33,7 +33,9 @@
     } else {
         [mutableDict setObject:@"" forKey:@"audienceId"];
     }
-    
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     [mutableDict setObject:@(self.type) forKey:@"type"];
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
@@ -48,6 +50,8 @@
     self.audienceName = [json stringValueForKey:@"audienceName"];
     self.audienceId = [json stringValueForKey:@"audienceId"];
     self.type = [json integerValueForKey:@"type"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSLiveChatroomUserQuit.m

@@ -21,6 +21,9 @@
     } else {
         [multableDict setObject:@"" forKey:@"userName"];
     }
+    if (self.senderUserInfo) {
+        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
 }
 
@@ -31,6 +34,8 @@
     if (json == nil) return;
     self.userId = [json stringValueForKey:@"userId"];
     self.userName = [json stringValueForKey:@"userName"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCPauseLiveMessage.m

@@ -11,7 +11,9 @@
 @implementation KSRCPauseLiveMessage
 - (NSData *)encode {
     NSMutableDictionary *multableDict = [NSMutableDictionary dictionary];
-    
+    if (self.senderUserInfo) {
+        [multableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:multableDict options:kNilOptions error:nil];
 }
 
@@ -20,6 +22,8 @@
     NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
     NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
     if (json == nil) return;
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 

+ 6 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/KSRCShopRushMessage.m

@@ -22,6 +22,10 @@
     } else {
         [mutableDict setObject:@"" forKey:@"userName"];
     }
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
+
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -32,6 +36,8 @@
     if (json == nil) return;
     self.userId = [json stringValueForKey:@"userId"];
     self.userName = [json stringValueForKey:@"userName"];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomLikeCount.m

@@ -13,6 +13,9 @@
 - (NSData *)encode {
     NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
     [mutableDict setObject:@(self.count) forKey:@"count"];
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -22,6 +25,8 @@
     NSDictionary *json = [[NSDictionary alloc] initWithDictionary:dictionary];
     if (json == nil) return;
     self.count = [[json stringValueForKey:@"count"] intValue];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/LiveRoomMessage/RCChatroomSeatsControl.m

@@ -23,6 +23,9 @@
         [mutableDict setObject:@"" forKey:@"userName"];
     }
     [mutableDict setObject:@(self.seatBan) forKey:@"seatBan"];
+    if (self.senderUserInfo) {
+        [mutableDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"];
+    }
     return [NSJSONSerialization dataWithJSONObject:mutableDict options:kNilOptions error:nil];
 }
 
@@ -34,6 +37,8 @@
     self.userId = [json stringValueForKey:@"userId"];
     self.userName = [json stringValueForKey:@"userName"];
     self.seatBan = [[json stringValueForKey:@"seatBan"] boolValue];
+    NSDictionary *userinfoDic = dictionary[@"user"];
+    [self decodeUserInfo:userinfoDic];
 }
 
 + (NSString *)getObjectName {

+ 24 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Controller/MineViewController.m

@@ -37,7 +37,7 @@
 
 #import "BadgeIntroduceView.h"
 
-@interface MineViewController ()
+@interface MineViewController ()<UIScrollViewDelegate>
 
 @property (nonatomic, strong) MineNavView *navView;
 
@@ -143,10 +143,17 @@
 
 - (void)refreshView {
     [self.headView configMessage:self.mineInfo];
+    if ([NSString isEmptyString:self.mineInfo.username]) {
+        self.navView.headTitle.text = [NSString stringWithFormat:@"游客%@",self.mineInfo.userId];;
+    }
+    else {
+        self.navView.headTitle.text = self.mineInfo.username;
+    }
 }
 
 
 - (void)configUI {
+    self.scrollView.delegate = self;
     [self.scrollView mas_remakeConstraints:^(MASConstraintMaker *make) {
         make.left.right.mas_equalTo(self.view);
         make.top.mas_equalTo(self.view.mas_top);
@@ -160,7 +167,7 @@
     
     [self.view addSubview:self.navView];
     [self.navView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.width.mas_equalTo(60);
+        make.width.mas_equalTo(KPortraitWidth);
         make.right.top.mas_equalTo(self.view);
         make.height.mas_equalTo(kNaviBarHeight);
     }];
@@ -543,6 +550,21 @@
     return _bottomView;
 }
 
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
+    CGFloat space = scrollView.contentOffset.y;
+    if (space >= kNaviBarHeight) {
+        self.navView.backgroundColor = [UIColor whiteColor];
+        self.navView.headTitle.hidden = NO;
+        self.navView.lineView.hidden = NO;
+    }
+    else {
+        self.navView.headTitle.hidden = YES;
+        self.navView.lineView.hidden = YES;
+        CGFloat rate = space / kNaviBarHeight < 0 ? 0 : space / kNaviBarHeight;
+        self.navView.backgroundColor = HexRGBAlpha(0xffffff, rate);
+    }
+}
+
 /*
 #pragma mark - Navigation
 

+ 5 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/View/UnderwayLiveCell.m

@@ -72,9 +72,13 @@
         self.callback(self.sourceModel);
     }
 }
+
 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
     [super setSelected:selected animated:animated];
-
+    if (self.liveImage.animating == NO) {
+        [self.liveImage startAnimating];
+    }
+    
     // Configure the view for the selected state
 }
 

+ 1 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineFunctionView.m

@@ -7,7 +7,6 @@
 
 #import "MineFunctionView.h"
 
-
 @interface MineFunctionView ()
 
 @property (nonatomic, copy) MineViewCallback callback;
@@ -58,7 +57,7 @@
 
 
 - (CGFloat)getViewHeight {
-    return 243.0f;
+    return 232.0f;
 }
 
 - (NSMutableArray *)imageArray {

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineNavView.h

@@ -18,6 +18,10 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface MineNavView : UIView
 
+@property (weak, nonatomic) IBOutlet UILabel *headTitle;
+
+@property (weak, nonatomic) IBOutlet UIView *lineView;
+
 + (instancetype)shareInstance;
 
 - (void)mineNavAction:(MineNavAction)action;

+ 28 - 5
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineNavView.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="MineNavView">
-            <rect key="frame" x="0.0" y="0.0" width="59" height="87"/>
+            <rect key="frame" x="0.0" y="0.0" width="394" height="87"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="o7c-br-wf5">
-                    <rect key="frame" x="9" y="47" width="40" height="40"/>
+                    <rect key="frame" x="344" y="45" width="40" height="40"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="40" id="He1-cX-k8M"/>
                         <constraint firstAttribute="width" constant="40" id="S21-d9-pEr"/>
@@ -26,7 +26,7 @@
                     </connections>
                 </button>
                 <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Vo-To-1Fv">
-                    <rect key="frame" x="4" y="47" width="0.0" height="40"/>
+                    <rect key="frame" x="339" y="45" width="0.0" height="40"/>
                     <constraints>
                         <constraint firstAttribute="width" id="h2P-XP-WfO"/>
                         <constraint firstAttribute="height" constant="40" id="in1-ck-06o"/>
@@ -37,18 +37,41 @@
                         <action selector="scanAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="vhm-E8-1jP"/>
                     </connections>
                 </button>
+                <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jDW-Ol-SEF">
+                    <rect key="frame" x="197" y="65" width="0.0" height="0.0"/>
+                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
+                    <nil key="textColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tJO-5Y-MNY">
+                    <rect key="frame" x="0.0" y="86" width="394" 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="sk1-Nl-Ec0"/>
+                    </constraints>
+                </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstAttribute="bottom" secondItem="o7c-br-wf5" secondAttribute="bottom" id="4yw-g9-DTw"/>
+                <constraint firstAttribute="bottom" secondItem="o7c-br-wf5" secondAttribute="bottom" constant="2" id="4yw-g9-DTw"/>
                 <constraint firstAttribute="trailing" secondItem="o7c-br-wf5" secondAttribute="trailing" constant="10" id="Kng-m2-QZf"/>
+                <constraint firstItem="o7c-br-wf5" firstAttribute="centerY" secondItem="jDW-Ol-SEF" secondAttribute="centerY" id="NM7-lq-DIc"/>
+                <constraint firstItem="5Vo-To-1Fv" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="jDW-Ol-SEF" secondAttribute="trailing" constant="10" id="VE0-A8-J1T"/>
                 <constraint firstItem="o7c-br-wf5" firstAttribute="centerY" secondItem="5Vo-To-1Fv" secondAttribute="centerY" id="eJY-8Q-kmx"/>
+                <constraint firstItem="tJO-5Y-MNY" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="gtw-T6-bD6"/>
+                <constraint firstItem="jDW-Ol-SEF" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="ndA-0a-dYe"/>
+                <constraint firstAttribute="trailing" secondItem="tJO-5Y-MNY" secondAttribute="trailing" id="nsa-8y-E9G"/>
+                <constraint firstAttribute="bottom" secondItem="tJO-5Y-MNY" secondAttribute="bottom" id="r2K-zV-lCu"/>
                 <constraint firstItem="o7c-br-wf5" firstAttribute="leading" secondItem="5Vo-To-1Fv" secondAttribute="trailing" constant="5" id="xLP-t3-UaS"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-            <point key="canvasLocation" x="318.11594202898556" y="-96.763392857142847"/>
+            <connections>
+                <outlet property="headTitle" destination="jDW-Ol-SEF" id="MAF-KM-bAD"/>
+                <outlet property="lineView" destination="tJO-5Y-MNY" id="iqa-4n-kxx"/>
+            </connections>
+            <point key="canvasLocation" x="247.82608695652175" y="-96.763392857142847"/>
         </view>
     </objects>
     <resources>

+ 1 - 1
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/View/MineTeachToolView.m

@@ -68,7 +68,7 @@
 
 
 - (CGFloat)getViewHeight {
-    return 243.0f;
+    return 232.0f;
 }