소스 검색

直播封面图

Steven 2 년 전
부모
커밋
859fdd7e06

+ 2 - 2
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -8038,7 +8038,7 @@
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/SocialLibraries/QQ",
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/UMSocialSDKPlugin",
 				);
-				MARKETING_VERSION = 1.3.2;
+				MARKETING_VERSION = 1.3.3;
 				PRODUCT_BUNDLE_IDENTIFIER = com.Colexiu.KulexiuForTeacher;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_EMIT_LOC_STRINGS = YES;
@@ -8100,7 +8100,7 @@
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/SocialLibraries/QQ",
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/UMSocialSDKPlugin",
 				);
-				MARKETING_VERSION = 1.3.2;
+				MARKETING_VERSION = 1.3.3;
 				PRODUCT_BUNDLE_IDENTIFIER = com.Colexiu.KulexiuForTeacher;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_EMIT_LOC_STRINGS = YES;

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


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

@@ -84,5 +84,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "C592A0B5-5A2D-4522-B37F-74ED2CE1BF52"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Mine/LiveList/View/UnderwayLiveCell.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "50"
+            endingLineNumber = "50"
+            landmarkName = "-configWithSource:callback:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 74 - 2
KulexiuForTeacher/KulexiuForTeacher/Module/Live/Controller/CreateLiveViewController.m

@@ -10,6 +10,7 @@
 #import "CustomNavViewController.h"
 #import "LiveRoomViewController.h"
 #import "KSChoosePicker.h"
+#import "KSMediaManager.h"
 
 @interface CreateLiveViewController ()
 
@@ -17,6 +18,11 @@
 
 @property (nonatomic, strong) NSString *chooseTime;
 
+@property (nonatomic, strong) KSMediaManager *mediaManager;
+
+@property (nonatomic, strong) NSMutableArray *imageArray;    // 图片数组
+@property (nonatomic, strong) NSMutableArray *imageAsset;    // 图片 asset
+
 @end
 
 @implementation CreateLiveViewController
@@ -44,6 +50,8 @@
         make.left.right.mas_equalTo(self.view);
         make.height.mas_equalTo(height);
     }];
+    
+    
     [self.scrollView setContentSize:CGSizeMake(kScreenWidth, height)];
     MJWeakSelf;
     [self.bodyView createSureCallback:^(BOOL chooseTime, NSString * _Nonnull title, NSString * _Nonnull content) {
@@ -54,6 +62,33 @@
             [weakSelf createLiveAction:title content:content];
         }
     }];
+    
+    [self.bodyView chooseCoverCallback:^{
+        [weakSelf pushImagePickerController];
+    }];
+}
+
+
+- (void)pushImagePickerController {
+    // 调用相册
+    self.mediaManager = [[KSMediaManager alloc] init];
+    self.mediaManager.mediaType = MEDIATYPE_PHOTO;
+    self.mediaManager.maxPhotoNumber = 1;
+    self.mediaManager.baseCtrl = self;
+    self.mediaManager.needCropImage = YES;
+    MJWeakSelf;
+    [self.mediaManager noAlertCallback:^(NSString * _Nullable videoUrl, NSMutableArray * _Nullable imageArray, NSMutableArray * _Nullable imageAsset) {
+        [weakSelf displayChooseImage:imageArray imageAsset:imageAsset];
+    }];
+    [self.mediaManager pushImagePickerController];
+}
+
+- (void)displayChooseImage:(NSMutableArray *)imageArray imageAsset:(NSMutableArray *)imageAsset {
+    // 添加图片
+    self.imageArray = [imageArray mutableCopy];
+    self.imageAsset = [imageAsset mutableCopy];
+    // 重新布局
+    [self.bodyView.coverImage setImage:[self.imageArray lastObject]];
 }
 
 - (void)chooseTimeAction {
@@ -69,9 +104,32 @@
 
 
 - (void)createLiveAction:(NSString *)title content:(NSString *)content {
-    NSString *imgUrl = nil;
+    
+    if (self.imageArray.count == 0) {
+        [self MBPShow:@"请上传直播封面图"];
+        return;
+    }
     [self showhud];
-    [KSNetworkingManager liveRoomCreateTempLiveRoom:KS_POST coverPic:imgUrl liveRemark:content roomTitle:title liveTime:[self.chooseTime integerValue] success:^(NSDictionary * _Nonnull dic) {
+    UIImage *coverImage = [self.imageArray lastObject];
+    NSData *imgData = [UIImage turnsImaegDataByImage:coverImage];
+    NSString *fileName = @"image";
+    [[KSUploadManager shareInstance] configBucketName:@"daya"];
+    [[KSUploadManager shareInstance] uploadImage:imgData fileName:fileName successCallback:^(NSMutableArray * _Nonnull fileUrlArray) {
+        NSString *avatarUrl = [fileUrlArray lastObject];
+        [self uploadCoverImage:avatarUrl liveTilte:title content:content];
+    } faliure:^(NSError * _Nullable error, NSString *descMessaeg) {
+        [self removehub];
+        if ([NSString isEmptyString:descMessaeg]) {
+            [self MBPShow:descMessaeg];
+        }
+    }];
+    
+    
+}
+
+- (void)uploadCoverImage:(NSString *)coverImageUrl liveTilte:(NSString *)title content:(NSString *)content {
+   
+    [KSNetworkingManager liveRoomCreateTempLiveRoom:KS_POST coverPic:coverImageUrl liveRemark:content roomTitle:title liveTime:[self.chooseTime integerValue] success:^(NSDictionary * _Nonnull dic) {
         [self removehub];
         if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
             NSString *roomId = [dic stringValueForKey:@"data"];
@@ -101,6 +159,20 @@
     [self.navigationController presentViewController:navCtrl animated:YES completion:nil];
 }
 
+#pragma mark - 懒加载
+- (NSMutableArray *)imageArray {
+    if (!_imageArray) {
+        _imageArray = [NSMutableArray array];
+    }
+    return _imageArray;
+}
+
+- (NSMutableArray *)imageAsset {
+    if (!_imageAsset) {
+        _imageAsset = [NSMutableArray array];
+    }
+    return _imageAsset;
+}
 
 /*
 #pragma mark - Navigation

+ 5 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/CreateLiveBodyView.h

@@ -9,16 +9,21 @@
 
 typedef void(^CreateLiveCallback)(BOOL chooseTime, NSString * _Nonnull title,NSString * _Nonnull content);
 
+typedef void(^ChooseLiveCoverCallback)(void);
 NS_ASSUME_NONNULL_BEGIN
 
 @interface CreateLiveBodyView : UIView
 
 + (instancetype)shareInstance;
 
+@property (weak, nonatomic) IBOutlet UIImageView *coverImage;
+
 @property (weak, nonatomic) IBOutlet UILabel *timeLabel;
 
 - (void)createSureCallback:(CreateLiveCallback)callback;
 
+- (void)chooseCoverCallback:(ChooseLiveCoverCallback)callback;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 17 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/CreateLiveBodyView.m

@@ -6,6 +6,7 @@
 //
 
 #import "CreateLiveBodyView.h"
+#import "UIView+ExtensionForDotLine.h"
 
 @interface CreateLiveBodyView ()<UITextFieldDelegate,UITextViewDelegate>
 
@@ -17,8 +18,12 @@
 
 @property (weak, nonatomic) IBOutlet UILabel *countLabel;
 
+@property (weak, nonatomic) IBOutlet UIView *buttonBgView;
+
 @property (nonatomic, copy) CreateLiveCallback callback;
 
+@property (nonatomic, copy) ChooseLiveCoverCallback chooseCoverBlock;
+
 @end
 
 @implementation CreateLiveBodyView
@@ -28,6 +33,8 @@
     self.titleField.delegate = self;
     self.titleField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"请输入直播标题" attributes:@{NSForegroundColorAttributeName:HexRGB(0xc1c1c1)}];
     self.inputView.delegate = self;
+    [self.buttonBgView drawBoardDottedLine:1.0f length:4 space:4 cornerRadius:8.0f lineColor:HexRGB(0xe3e3e3)];
+    
 }
 
 + (instancetype)shareInstance {
@@ -41,6 +48,16 @@
     }
 }
 
+- (void)chooseCoverCallback:(ChooseLiveCoverCallback)callback {
+    if (callback) {
+        self.chooseCoverBlock = callback;
+    }
+}
+- (IBAction)chooseCover:(id)sender {
+    if (self.chooseCoverBlock) {
+        self.chooseCoverBlock();
+    }
+}
 
 - (IBAction)sureAction:(id)sender {
     [self endEditing:YES];

+ 91 - 3
KulexiuForTeacher/KulexiuForTeacher/Module/Live/View/CreateLiveBodyView.xib

@@ -11,7 +11,7 @@
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="CreateLiveBodyView">
-            <rect key="frame" x="0.0" y="0.0" width="414" height="642"/>
+            <rect key="frame" x="0.0" y="0.0" width="414" height="755"/>
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IUC-2g-F8n">
@@ -116,7 +116,7 @@
                     </userDefinedRuntimeAttributes>
                 </view>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="NVl-Up-QMs">
-                    <rect key="frame" x="28" y="555" width="358" height="44"/>
+                    <rect key="frame" x="28" y="668" width="358" height="44"/>
                     <color key="backgroundColor" red="0.1764705882" green="0.78039215689999997" blue="0.66666666669999997" alpha="1" colorSpace="calibratedRGB"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="44" id="HUl-sw-SN4"/>
@@ -189,6 +189,88 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eqa-D0-dj4">
+                    <rect key="frame" x="14" y="444" width="386" height="140"/>
+                    <subviews>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="*" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SS1-EL-CQn">
+                            <rect key="frame" x="12" y="20" width="8" height="21"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
+                            <color key="textColor" red="1" green="0.30588235289999999" blue="0.098039215690000001" 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="dr3-xJ-pat">
+                            <rect key="frame" x="20" y="20" width="87" height="21"/>
+                            <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
+                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="baO-ER-Xqp">
+                            <rect key="frame" x="12" y="51" width="120" height="80"/>
+                            <subviews>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="image_upload" translatesAutoresizingMaskIntoConstraints="NO" id="s0N-jC-oYR">
+                                    <rect key="frame" x="43.5" y="20" width="33" height="26"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="33" id="XlD-eF-Jef"/>
+                                        <constraint firstAttribute="height" constant="26" id="xEn-b7-iNE"/>
+                                    </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="L3A-oT-OkP">
+                                    <rect key="frame" x="17" y="56" width="86" height="17"/>
+                                    <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>
+                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Fvg-er-LU8">
+                                    <rect key="frame" x="0.0" y="0.0" width="120" height="80"/>
+                                </imageView>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fmk-K4-q9T">
+                                    <rect key="frame" x="0.0" y="0.0" width="120" height="80"/>
+                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                    <connections>
+                                        <action selector="chooseCover:" destination="iN0-l3-epB" eventType="touchUpInside" id="3I0-1t-t3N"/>
+                                    </connections>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                            <constraints>
+                                <constraint firstItem="Fvg-er-LU8" firstAttribute="leading" secondItem="baO-ER-Xqp" secondAttribute="leading" id="67W-de-5sP"/>
+                                <constraint firstItem="Fvg-er-LU8" firstAttribute="top" secondItem="baO-ER-Xqp" secondAttribute="top" id="6Es-Ir-fRy"/>
+                                <constraint firstAttribute="bottom" secondItem="fmk-K4-q9T" secondAttribute="bottom" id="8pz-qH-sYd"/>
+                                <constraint firstAttribute="trailing" secondItem="Fvg-er-LU8" secondAttribute="trailing" id="9Xc-uG-gaK"/>
+                                <constraint firstAttribute="height" constant="80" id="Ju0-MQ-QQI"/>
+                                <constraint firstItem="s0N-jC-oYR" firstAttribute="top" secondItem="baO-ER-Xqp" secondAttribute="top" constant="20" id="MRx-0E-q0q"/>
+                                <constraint firstItem="L3A-oT-OkP" firstAttribute="centerX" secondItem="baO-ER-Xqp" secondAttribute="centerX" id="RHf-UG-5lg"/>
+                                <constraint firstItem="fmk-K4-q9T" firstAttribute="leading" secondItem="baO-ER-Xqp" secondAttribute="leading" id="W6r-Pu-xUV"/>
+                                <constraint firstItem="s0N-jC-oYR" firstAttribute="centerX" secondItem="baO-ER-Xqp" secondAttribute="centerX" id="b0r-nH-6pc"/>
+                                <constraint firstItem="L3A-oT-OkP" firstAttribute="top" secondItem="s0N-jC-oYR" secondAttribute="bottom" constant="10" id="mhx-ZT-ocz"/>
+                                <constraint firstAttribute="bottom" secondItem="Fvg-er-LU8" secondAttribute="bottom" id="nqo-qx-9rZ"/>
+                                <constraint firstItem="fmk-K4-q9T" firstAttribute="top" secondItem="baO-ER-Xqp" secondAttribute="top" id="rVo-s4-I5K"/>
+                                <constraint firstAttribute="trailing" secondItem="fmk-K4-q9T" secondAttribute="trailing" id="uta-7S-faj"/>
+                                <constraint firstAttribute="width" constant="120" id="xZ0-dR-Vca"/>
+                            </constraints>
+                            <userDefinedRuntimeAttributes>
+                                <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                    <real key="value" value="10"/>
+                                </userDefinedRuntimeAttribute>
+                            </userDefinedRuntimeAttributes>
+                        </view>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="140" id="OTU-Yx-213"/>
+                        <constraint firstItem="SS1-EL-CQn" firstAttribute="leading" secondItem="eqa-D0-dj4" secondAttribute="leading" constant="12" id="QJT-e2-aQQ"/>
+                        <constraint firstItem="baO-ER-Xqp" firstAttribute="leading" secondItem="eqa-D0-dj4" secondAttribute="leading" constant="12" id="SL9-O9-4vH"/>
+                        <constraint firstItem="SS1-EL-CQn" firstAttribute="top" secondItem="eqa-D0-dj4" secondAttribute="top" constant="20" id="SMz-fC-FXj"/>
+                        <constraint firstItem="dr3-xJ-pat" firstAttribute="leading" secondItem="SS1-EL-CQn" secondAttribute="trailing" id="Xbd-S4-cEk"/>
+                        <constraint firstItem="baO-ER-Xqp" firstAttribute="top" secondItem="SS1-EL-CQn" secondAttribute="bottom" constant="10" id="vlu-g3-owJ"/>
+                        <constraint firstItem="dr3-xJ-pat" firstAttribute="centerY" secondItem="SS1-EL-CQn" secondAttribute="centerY" id="zWz-HM-aCL"/>
+                    </constraints>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                            <real key="value" value="10"/>
+                        </userDefinedRuntimeAttribute>
+                    </userDefinedRuntimeAttributes>
+                </view>
             </subviews>
             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
@@ -199,9 +281,12 @@
                 <constraint firstAttribute="trailing" secondItem="IUC-2g-F8n" secondAttribute="trailing" constant="14" id="HHl-5j-HQK"/>
                 <constraint firstItem="IUC-2g-F8n" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="KzN-3e-sOc"/>
                 <constraint firstAttribute="trailing" secondItem="2Lf-gZ-cFg" secondAttribute="trailing" constant="14" id="Z8I-JA-xdt"/>
+                <constraint firstAttribute="trailing" secondItem="eqa-D0-dj4" secondAttribute="trailing" constant="14" id="egn-yk-UmN"/>
                 <constraint firstItem="IUC-2g-F8n" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="10" id="lnB-2q-sHz"/>
                 <constraint firstItem="AgR-dK-40h" firstAttribute="leading" secondItem="IUC-2g-F8n" secondAttribute="leading" id="oc2-Yu-gbH"/>
                 <constraint firstItem="AgR-dK-40h" firstAttribute="top" secondItem="IUC-2g-F8n" secondAttribute="bottom" constant="12" id="r6D-oe-Wh7"/>
+                <constraint firstItem="eqa-D0-dj4" firstAttribute="top" secondItem="2Lf-gZ-cFg" secondAttribute="bottom" constant="20" id="rH5-v7-Dpi"/>
+                <constraint firstItem="eqa-D0-dj4" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="sr0-vV-PW2"/>
                 <constraint firstAttribute="bottom" secondItem="NVl-Up-QMs" secondAttribute="bottom" constant="43" id="uVR-9h-5g8"/>
                 <constraint firstItem="2Lf-gZ-cFg" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="yWu-es-je5"/>
             </constraints>
@@ -209,17 +294,20 @@
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="buttonBgView" destination="baO-ER-Xqp" id="aHu-ce-0wL"/>
                 <outlet property="countLabel" destination="K6I-S3-WCn" id="KTW-ST-cYe"/>
+                <outlet property="coverImage" destination="Fvg-er-LU8" id="Dap-pE-Nhb"/>
                 <outlet property="inputView" destination="ez8-R7-sTU" id="KkF-CH-6Gx"/>
                 <outlet property="timeLabel" destination="2aF-Cf-b74" id="frD-7s-QWn"/>
                 <outlet property="tipsLabel" destination="tnb-4n-z1s" id="hVS-S1-W0w"/>
                 <outlet property="titleField" destination="Zer-5J-UAf" id="9pj-Rs-O21"/>
             </connections>
-            <point key="canvasLocation" x="131.8840579710145" y="163.39285714285714"/>
+            <point key="canvasLocation" x="131.8840579710145" y="201.22767857142856"/>
         </view>
     </objects>
     <resources>
         <image name="choose_arrow" width="12" height="7"/>
+        <image name="image_upload" width="33" height="26"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>

+ 3 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/LiveList/View/UnderwayLiveCell.m

@@ -46,6 +46,9 @@
     NSDate *endDate = [formater dateFromString:endTime];
     [formater setDateFormat:@"yyyy/MM/dd HH:mm"];
     self.endTimeLabel.text = [NSString returnNoNullStringWithString:[formater stringFromDate:endDate]];
+    if (self.liveImage.animating == YES) {
+        [self.liveImage stopAnimating];
+    }
     [self.liveImage startAnimating];
 }