Browse Source

首页刷新效果和认证达人占位

Steven 2 years ago
parent
commit
fb5505258d

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


+ 115 - 3
KulexiuForStudent/KulexiuForStudent.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -512,7 +512,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "1147"
             endingLineNumber = "1147"
-            landmarkName = "-insertMessage:userInfo:"
+            landmarkName = "-showInviteAlertMessage:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -526,11 +526,123 @@
             filePath = "KulexiuForStudent/Module/Home/Controller/NewHomeViewController.m"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1216"
-            endingLineNumber = "1216"
+            startingLineNumber = "1214"
+            endingLineNumber = "1214"
             landmarkName = "-homeNavAction:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "8CC6F8FD-6841-4923-8FDB-B8F040B84FB5"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1380"
+            endingLineNumber = "1380"
+            landmarkName = "-didReceiveMessageNotification:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "8CC6F8FD-6841-4923-8FDB-B8F040B84FB5 - 37facbaa101cbdb1"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[LiveVideoRoomViewController didReceiveMessageNotification:]"
+                  moduleName = "KulexiuForStudent"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/wangzhi/DayaWorkspace/Klx_student/KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1489"
+                  endingLineNumber = "1489"
+                  offsetFromSymbolStart = "1184">
+               </Location>
+               <Location
+                  uuid = "8CC6F8FD-6841-4923-8FDB-B8F040B84FB5 - 37facbaa101cbdb1"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[LiveVideoRoomViewController didReceiveMessageNotification:]"
+                  moduleName = "KulexiuForStudent"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/wangzhi/DayaWorkspace/Klx_student/KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1489"
+                  endingLineNumber = "1489"
+                  offsetFromSymbolStart = "1188">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "93ED4FCE-5D2E-4D6D-ACD7-640638F3C144"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1370"
+            endingLineNumber = "1370"
+            landmarkName = "-didReceiveMessageNotification:"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "93ED4FCE-5D2E-4D6D-ACD7-640638F3C144 - 37facbaa101cbdb1"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[LiveVideoRoomViewController didReceiveMessageNotification:]"
+                  moduleName = "KulexiuForStudent"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/wangzhi/DayaWorkspace/Klx_student/KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1489"
+                  endingLineNumber = "1489"
+                  offsetFromSymbolStart = "1184">
+               </Location>
+               <Location
+                  uuid = "93ED4FCE-5D2E-4D6D-ACD7-640638F3C144 - 37facbaa101cbdb1"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[LiveVideoRoomViewController didReceiveMessageNotification:]"
+                  moduleName = "KulexiuForStudent"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/wangzhi/DayaWorkspace/Klx_student/KulexiuForStudent/KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1489"
+                  endingLineNumber = "1489"
+                  offsetFromSymbolStart = "1188">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "1E3F226F-38FA-46AA-9F8D-283D33C1F695"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForStudent/Module/Live/Controller/LiveVideoRoomViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "1297"
+            endingLineNumber = "1297"
+            landmarkName = "-didReceiveMessageNotification:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 15 - 17
KulexiuForStudent/KulexiuForStudent/Module/Home/Controller/NewHomeViewController.m

@@ -175,25 +175,14 @@
         make.left.right.top.mas_equalTo(self.view);
         make.height.mas_equalTo(kNaviBarHeight);
     }];
-//    [self.view bringSubviewToFront:self.scrollView];
     [self.view bringSubviewToFront:self.navView];
-//    [self.scrollView mas_remakeConstraints:^(MASConstraintMaker *make) {
-//        make.left.right.mas_equalTo(self.view);
-//        make.top.mas_equalTo(self.view.mas_top).offset(kNaviBarHeight);
-//        make.bottom.mas_equalTo(self.view.mas_bottom);
-//    }];
-//    self.scrollView.backgroundColor = [UIColor clearColor];
-//    self.scrollView.scrollEnabled = NO;
-//    MJWeakSelf;
-//    self.scrollView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
-//        [weakSelf requestData];
-//    }];
 }
 
 - (void)configHeadView {
     UIView *headBgView = [[UIView alloc] init];
     headBgView.backgroundColor = [UIColor whiteColor];
     [self.headView addSubview:headBgView];
+    
     // banner
     [self.headView addSubview:self.bannerView];
     self.bannerViewHeight = [HomeBannerView getViewHeight];
@@ -330,6 +319,12 @@
     self.pagerView.backgroundColor = [UIColor clearColor];
     self.pagerView.mainTableView.backgroundColor = [UIColor clearColor];
     self.categoryView.listContainer = (id<JXCategoryViewListContainer>)self.pagerView.listContainerView;
+
+    // 头部刷新
+    MJWeakSelf;
+    self.pagerView.mainTableView.mj_header = [KSGifRefreshHeader headerWithRefreshingBlock:^{
+        [weakSelf requestData];
+    }];
 }
 
 - (void)viewDidAppear:(BOOL)animated {
@@ -338,7 +333,7 @@
 }
 
 - (JXPagerView *)preferredPagingView {
-    return [[JXPagerListRefreshView alloc] initWithDelegate:self];
+    return [[JXPagerView alloc] initWithDelegate:self];
 }
 
 - (void)viewWillAppear:(BOOL)animated {
@@ -667,11 +662,12 @@
     [self requestLiveList];
     dispatch_group_notify(self.requestGroup, dispatch_get_main_queue(), ^{
         [self removehub];
-        [self.scrollView.mj_header endRefreshing];
+        [self.pagerView.mainTableView.mj_header endRefreshing];
         [self refreshView];
     });
 }
 
+
 - (void)refreshView {
     [self refreshBannaerView];
     [self showButtonMessage];
@@ -741,10 +737,11 @@
             make.top.mas_equalTo(self.noticeView.mas_bottom);
             make.height.mas_equalTo(self.buttonViewHeight);
         }];
+        self.courseViewHeight = 91.0f;
         [self.courseView mas_remakeConstraints:^(MASConstraintMaker *make) {
-            make.left.right.mas_equalTo(self.view);
+            make.left.right.mas_equalTo(self.headView);
             make.top.mas_equalTo(self.buttonContainer.mas_bottom);
-            make.height.mas_equalTo(91.0f);
+            make.height.mas_equalTo(self.courseViewHeight);
         }];
     }
     else {
@@ -761,10 +758,11 @@
             make.height.mas_equalTo(self.noticeViewHeight);
         }];
         CGFloat courseViewHeight = self.recentCourseModel ? 90.0f : CGFLOAT_MIN;
+        self.courseViewHeight = courseViewHeight;
         [self.courseView mas_remakeConstraints:^(MASConstraintMaker *make) {
             make.left.right.mas_equalTo(self.headView);
             make.top.mas_equalTo(self.noticeView.mas_bottom);
-            make.height.mas_equalTo(courseViewHeight);
+            make.height.mas_equalTo(self.courseViewHeight);
         }];
         
     }

+ 24 - 8
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomePageView/HomePageBodyView.m

@@ -14,7 +14,9 @@
 #import "MBProgressHUD+KSShow.h"
 #import "HomeTempLiveCell.h"
 
-@interface HomePageBodyView ()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
+#import "TeacherStyleFlowLayout.h"
+
+@interface HomePageBodyView ()<UICollectionViewDelegate,UICollectionViewDataSource,WaterFlowLayoutDelegate>
 
 @property (nonatomic, strong) NSMutableArray *sourceArray;
 
@@ -26,9 +28,10 @@
     self = [super initWithFrame:frame];
     if (self) {
         self.backgroundColor = HexRGB(0xf6f8f9);
-        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
-        layout.sectionInset = UIEdgeInsetsMake(14, 14, 12, 14);
+        TeacherStyleFlowLayout *layout = [[TeacherStyleFlowLayout alloc] init];
+        layout.sectionInset = UIEdgeInsetsMake(0, 14, 12, 14);
         layout.scrollDirection = UICollectionViewScrollDirectionVertical;
+        layout.delegate = self;
         self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height) collectionViewLayout:layout];
         self.collectionView.backgroundColor = HexRGB(0xf6f8f9);
         self.collectionView.delegate = self;
@@ -117,14 +120,27 @@
     [self.naviController pushViewController:ctrl animated:YES];
 }
 
-- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
-    if (indexPath.item == 0) {
-        return CGSizeMake((kScreenWidth - 28 - 11) / 2.0f, 265);
+
+- (CGFloat)waterFlowLayout:(TeacherStyleFlowLayout *)waterFlowLayout heightForWidth:(CGFloat)width andIndexPath:(NSIndexPath *)indexPath {
+    id source = self.sourceArray[indexPath.item];
+    if (indexPath.row == 0) { // 第一排
+        if ([source isKindOfClass:[HomeTeacherLiveModel class]]) {
+            return 302;
+        }
+        else {
+            return 265.0f;
+        }
     }
-    else {
-        return CGSizeMake((kScreenWidth - 28 - 11) / 2.0f, 211);
+    else { 
+        if ([source isKindOfClass:[HomeTeacherLiveModel class]]) {  // 进入直播间
+            return 248.0f;
+        }
+        else {
+            return 211.0f;
+        }
     }
 }
+
 //- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
 //    return 11.0f;
 //}

+ 15 - 0
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomePageView/TeacherStyleFlowLayout.h

@@ -9,8 +9,23 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class TeacherStyleFlowLayout;
+
+@protocol WaterFlowLayoutDelegate <NSObject> //设置代理传递数据,降低了与其他类的耦合性,通用性更强
+
+- (CGFloat)waterFlowLayout:(TeacherStyleFlowLayout *)waterFlowLayout heightForWidth:(CGFloat)width andIndexPath:(NSIndexPath *)indexPath;
+
+@end
+
+
 @interface TeacherStyleFlowLayout : UICollectionViewFlowLayout
 
+@property (assign,nonatomic) CGFloat columnMargin;//每一列item之间的间距
+@property (assign,nonatomic) CGFloat rowMargin;   //每一行item之间的间距
+@property (assign,nonatomic) NSInteger columnCount;//设置每一行排列的个数
+
+@property (weak,nonatomic) id<WaterFlowLayoutDelegate> delegate; //设置代理
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 123 - 0
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HomePageView/TeacherStyleFlowLayout.m

@@ -7,6 +7,129 @@
 
 #import "TeacherStyleFlowLayout.h"
 
+@interface TeacherStyleFlowLayout ()
+
+/** 这个字典用来存储每一列item的高度 */
+@property (strong,nonatomic)NSMutableDictionary *maxYDic;
+/** 存放每一个item的布局属性 */
+@property (strong,nonatomic)NSMutableArray *attrsArray;
+
+@end
+
 @implementation TeacherStyleFlowLayout
 
+- (instancetype)init {
+    if (self = [super init]){
+        self.columnMargin = 12;
+        self.rowMargin = 11;
+        self.columnCount = 2;
+    }
+    return self;
+}
+
+//每一次布局前的准备工作
+-(void)prepareLayout
+{
+    [super prepareLayout];
+    
+    //清空最大的y值
+    for (int i =0; i < self.columnCount; i++)
+    {
+        NSString *column = [NSString stringWithFormat:@"%d",i];
+        self.maxYDic[column] = @(self.sectionInset.top);
+    }
+
+    //计算所有item的属性
+    [self.attrsArray removeAllObjects];
+    NSInteger count = [self.collectionView numberOfItemsInSection:0];
+    for (int i=0; i<count; i++)
+    {
+        UICollectionViewLayoutAttributes *attrs = [self layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForItem:i inSection:0]];
+        [self.attrsArray addObject:attrs];
+    }
+}
+
+//设置collectionView滚动区域
+- (CGSize)collectionViewContentSize
+{
+    //假设最长的那一列为第0列
+    __block NSString *maxColumn = @"0";
+    
+    //遍历字典,找出最长的那一列
+    [self.maxYDic enumerateKeysAndObjectsUsingBlock:^(NSString *column, NSNumber *maxY, BOOL *stop) {
+        
+        if ([maxY floatValue] > [self.maxYDic[maxColumn] floatValue])
+        {
+            maxColumn = column;
+        }
+    }];
+    return CGSizeMake(0, [self.maxYDic[maxColumn]floatValue]+self.sectionInset.bottom);
+}
+
+//允许每一次重新布局
+-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
+{
+    return YES;
+}
+
+//布局每一个属性
+-(UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
+{
+    //假设最短的那一列为第0列
+    __block NSString *minColumn = @"0";
+    
+    //遍历字典,找出最短的那一列
+    [self.maxYDic enumerateKeysAndObjectsUsingBlock:^(NSString *column, NSNumber *maxY, BOOL *stop) {
+        
+        if ([maxY floatValue] < [self.maxYDic[minColumn] floatValue])
+        {
+            minColumn = column;
+        }
+    }];
+    
+    //计算每一个item的宽度和高度
+    CGFloat width = (self.collectionView.frame.size.width - self.columnMargin*(self.columnCount - 1) - self.sectionInset.left - self.sectionInset.right) / self.columnCount;
+    
+    CGFloat height = [self.delegate waterFlowLayout:self heightForWidth:width andIndexPath:indexPath] ;
+    
+    
+    //计算每一个item的位置
+    CGFloat x = self.sectionInset.left + (width + self.columnMargin) * [minColumn floatValue];
+    CGFloat y = [self.maxYDic[minColumn] floatValue] + self.rowMargin;
+    
+    
+    //更新这一列的y值
+    self.maxYDic[minColumn] = @(y + height);
+    
+    
+    //创建布局属性
+    UICollectionViewLayoutAttributes *attrs = [UICollectionViewLayoutAttributes layoutAttributesForCellWithIndexPath:indexPath];
+    
+    //设置item的frame
+    attrs.frame = CGRectMake(x, y, width, height);
+    
+    return attrs;
+}
+
+//布局所有item的属性,包括header、footer
+-(NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
+{
+    return self.attrsArray;
+}
+
+#pragma mark ---- lazying
+- (NSMutableDictionary *)maxYDic {
+    if (!_maxYDic) {
+        _maxYDic = [NSMutableDictionary dictionary];
+    }
+    return _maxYDic;
+}
+
+- (NSMutableArray *)attrsArray {
+    if (!_attrsArray) {
+        _attrsArray = [NSMutableArray array];
+    }
+    return _attrsArray;
+}
+
 @end

+ 6 - 1
KulexiuForStudent/KulexiuForStudent/Module/Home/View/HotTalent/HomeHotTalentCell.m

@@ -42,7 +42,12 @@
     else {
         self.teacherName.text = [NSString stringWithFormat:@"%@",sourceModel.username];
     }
-    self.graduateSchool.text = [NSString returnNoNullStringWithString:sourceModel.graduateSchool];
+    if ([NSString isEmptyString:sourceModel.graduateSchool]) {
+        self.graduateSchool.text = @"认证达人";
+    }
+    else {
+        self.graduateSchool.text = [NSString returnNoNullStringWithString:sourceModel.graduateSchool];
+    }
 }
 
 @end

+ 0 - 13
KulexiuForStudent/KulexiuForStudent/Module/Home/View/PublicNoticeView.xib

@@ -49,22 +49,9 @@
                         <constraint firstAttribute="height" constant="44" id="ygi-dp-jdw"/>
                     </constraints>
                     <userDefinedRuntimeAttributes>
-                        <userDefinedRuntimeAttribute type="size" keyPath="shadowOffset">
-                            <size key="value" width="0.0" height="2"/>
-                        </userDefinedRuntimeAttribute>
-                        <userDefinedRuntimeAttribute type="number" keyPath="shadowOpacity">
-                            <real key="value" value="1"/>
-                        </userDefinedRuntimeAttribute>
-                        <userDefinedRuntimeAttribute type="color" keyPath="shadowUIColor">
-                            <color key="value" red="0.61568627450000002" green="0.61568627450000002" blue="0.61568627450000002" alpha="0.11" colorSpace="custom" customColorSpace="calibratedRGB"/>
-                        </userDefinedRuntimeAttribute>
-                        <userDefinedRuntimeAttribute type="number" keyPath="shadowRadius">
-                            <real key="value" value="2"/>
-                        </userDefinedRuntimeAttribute>
                         <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
                             <real key="value" value="10"/>
                         </userDefinedRuntimeAttribute>
-                        <userDefinedRuntimeAttribute type="boolean" keyPath="maskToBounces" value="NO"/>
                     </userDefinedRuntimeAttributes>
                 </view>
             </subviews>

+ 3 - 0
KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherStyle/HomeTempLiveCell.m

@@ -16,6 +16,7 @@
 @property (weak, nonatomic) IBOutlet UIImageView *teacherAvatar;
 
 @property (weak, nonatomic) IBOutlet UILabel *teacherName;
+@property (weak, nonatomic) IBOutlet UIView *liveStatusView;
 
 @end
 
@@ -24,6 +25,8 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
     // Initialization code
+    self.liveStatusView.layer.cornerRadius = 13;
+    self.liveStatusView.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMinXMaxYCorner; // 左上圆角
 }
 
 - (void)configWithSource:(HomeTeacherLiveModel *)source {

+ 27 - 6
KulexiuForStudent/KulexiuForStudent/Module/Home/View/TeacherStyle/HomeTempLiveCell.xib

@@ -22,13 +22,13 @@
                         <rect key="frame" x="2" y="2" width="213" height="280"/>
                         <subviews>
                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="dkD-Rj-Jac">
-                                <rect key="frame" x="0.0" y="0.0" width="213" height="190"/>
+                                <rect key="frame" x="0.0" y="0.0" width="213" height="200"/>
                             </imageView>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rgs-pt-r0X">
-                                <rect key="frame" x="0.0" y="190" width="213" height="90"/>
+                                <rect key="frame" x="0.0" y="200" width="213" height="80"/>
                                 <subviews>
                                     <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="UqS-fb-rXq">
-                                        <rect key="frame" x="10" y="60" width="16" height="16"/>
+                                        <rect key="frame" x="10" y="50" width="16" height="16"/>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="16" id="C2I-Ix-13W"/>
                                             <constraint firstAttribute="height" constant="16" id="TNu-jN-48x"/>
@@ -40,13 +40,13 @@
                                         </userDefinedRuntimeAttributes>
                                     </imageView>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="749" text="酷乐秀官方" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zw4-4b-hQf">
-                                        <rect key="frame" x="31" y="60.5" width="62" height="15"/>
+                                        <rect key="frame" x="31" y="50.5" width="62" height="15"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                         <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
                                     </label>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="正在直播" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KOn-hZ-b6S">
-                                        <rect key="frame" x="153.5" y="60.5" width="49.5" height="15"/>
+                                        <rect key="frame" x="153.5" y="50.5" width="49.5" height="15"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                         <color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
                                         <nil key="highlightedColor"/>
@@ -68,11 +68,29 @@
                                     <constraint firstItem="UqS-fb-rXq" firstAttribute="leading" secondItem="Rgs-pt-r0X" secondAttribute="leading" constant="10" id="YXR-2B-XnM"/>
                                     <constraint firstItem="zw4-4b-hQf" firstAttribute="leading" secondItem="UqS-fb-rXq" secondAttribute="trailing" constant="5" id="Yis-ft-D6s"/>
                                     <constraint firstAttribute="bottom" secondItem="UqS-fb-rXq" secondAttribute="bottom" constant="14" id="bfJ-PD-F2t"/>
-                                    <constraint firstAttribute="height" constant="90" id="lMv-ba-bx5"/>
+                                    <constraint firstAttribute="height" constant="80" id="lMv-ba-bx5"/>
                                     <constraint firstItem="KOn-hZ-b6S" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="zw4-4b-hQf" secondAttribute="trailing" constant="10" id="oVz-8Q-svH"/>
                                     <constraint firstItem="okN-QS-lDq" firstAttribute="top" secondItem="Rgs-pt-r0X" secondAttribute="top" constant="7" id="u1n-3R-3DM"/>
                                 </constraints>
                             </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rP0-Bh-d6J">
+                                <rect key="frame" x="141" y="15" width="72" height="26"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="直播中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Dyu-dd-ig4">
+                                        <rect key="frame" x="28" y="5.5" width="37" height="15"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.20000000000000001" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstItem="Dyu-dd-ig4" firstAttribute="centerY" secondItem="rP0-Bh-d6J" secondAttribute="centerY" id="flS-r2-G5q"/>
+                                    <constraint firstAttribute="width" constant="72" id="gjc-84-oYX"/>
+                                    <constraint firstAttribute="height" constant="26" id="hin-Cs-WaC"/>
+                                    <constraint firstAttribute="trailing" secondItem="Dyu-dd-ig4" secondAttribute="trailing" constant="7" id="kxW-io-zTu"/>
+                                </constraints>
+                            </view>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
@@ -80,6 +98,8 @@
                             <constraint firstAttribute="bottom" secondItem="Rgs-pt-r0X" secondAttribute="bottom" id="2w9-XB-DI2"/>
                             <constraint firstAttribute="trailing" secondItem="dkD-Rj-Jac" secondAttribute="trailing" id="3Vp-um-Tp5"/>
                             <constraint firstItem="dkD-Rj-Jac" firstAttribute="leading" secondItem="7Qa-Xp-aU3" secondAttribute="leading" id="Be7-Uf-891"/>
+                            <constraint firstItem="rP0-Bh-d6J" firstAttribute="top" secondItem="7Qa-Xp-aU3" secondAttribute="top" constant="15" id="T5M-yX-Rk7"/>
+                            <constraint firstAttribute="trailing" secondItem="rP0-Bh-d6J" secondAttribute="trailing" id="aq3-cu-0Fs"/>
                             <constraint firstItem="dkD-Rj-Jac" firstAttribute="top" secondItem="7Qa-Xp-aU3" secondAttribute="top" id="ckL-RL-TCG"/>
                             <constraint firstItem="Rgs-pt-r0X" firstAttribute="leading" secondItem="7Qa-Xp-aU3" secondAttribute="leading" id="eZo-B4-eTR"/>
                             <constraint firstItem="Rgs-pt-r0X" firstAttribute="top" secondItem="dkD-Rj-Jac" secondAttribute="bottom" id="jHX-oa-jdy"/>
@@ -114,6 +134,7 @@
             <size key="customSize" width="217" height="284"/>
             <connections>
                 <outlet property="coverImage" destination="dkD-Rj-Jac" id="f0m-uW-0Kh"/>
+                <outlet property="liveStatusView" destination="rP0-Bh-d6J" id="d2l-hd-zpc"/>
                 <outlet property="liveTitle" destination="okN-QS-lDq" id="hoG-vN-V8l"/>
                 <outlet property="teacherAvatar" destination="UqS-fb-rXq" id="CAa-qK-6Ke"/>
                 <outlet property="teacherName" destination="zw4-4b-hQf" id="yUh-e1-rHX"/>