Parcourir la source

视频列表刷新 fixed

Chris il y a 5 ans
Parent
commit
7978820ce8

+ 12 - 15
RainbowPlanet/RainbowPlanet/Modules/CommunityModule/CommunityVideoContent/ViewController/CommunityVideoListController.swift

@@ -25,7 +25,7 @@ class CommunityVideoListController: BaseViewController {
     // 来源Vc
     var departureVc : DepartureVCType = .others
     
-    var videoItemList: Array<CommunityVideoItemModel>?
+    var videoItemList = Array<CommunityVideoItemModel>()
     
     var commentAlertSheetView : CommunityAllCommentView?
     
@@ -115,7 +115,7 @@ class CommunityVideoListController: BaseViewController {
     override func setupData() {
         self.communityVideoListApi()
         
-        collectionView.addFooter(withAutomaticallyRefresh: true) {
+        collectionView.addFooterPreload(withAutomaticallyRefresh: true) {
             [weak self] (page) in
             if page <= self?.videoListMdl?.pagination?.totalPages ?? 1 {
                 self?.communityVideoListApi(page:page)
@@ -150,7 +150,7 @@ extension CommunityVideoListController: UICollectionViewDelegateFlowLayout,UICol
     }
     
     func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-        return videoItemList?.count ?? 0
+        return videoItemList.count ?? 0
     }
     
     func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
@@ -165,7 +165,7 @@ extension CommunityVideoListController: UICollectionViewDelegateFlowLayout,UICol
     
     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
         let cell = CommunityVideoCoverCollectionCell.cellWith(collectionView: collectionView, indexPath: indexPath)
-        cell.videoItemMdl = videoItemList?[indexPath.row]
+        cell.videoItemMdl = videoItemList[indexPath.row]
         cell.backClosure = {
             [weak self] in
             self?.navigationController?.popViewController(animated: true)
@@ -176,18 +176,18 @@ extension CommunityVideoListController: UICollectionViewDelegateFlowLayout,UICol
         }
         cell.followClosure = {
             [weak self] (videoItemMdl, followButton) in
-            CommunityFollowUserViewModel.shared.follow(communityVideoItemModel: videoItemMdl,videoItemList:(self?.videoItemList)!, button: followButton)
+            CommunityFollowUserViewModel.shared.follow(communityVideoItemModel: videoItemMdl,videoItemList:self!.videoItemList, button: followButton)
         }
         cell.buttonClickClosure = {
             [weak self] (clickType, uid, postId) in
             switch clickType {
             case videoBtnClickType.typeComment:
-                self?.showCommentView(postId: postId, videoItemMdl: (self?.videoItemList?[indexPath.row])!)
+                self?.showCommentView(postId: postId, videoItemMdl: (self?.videoItemList[indexPath.row])!)
                 
             case videoBtnClickType.typeLike:
-                VirusViewModel.shared.praise(communityVideoItemModel: (self?.videoItemList?[indexPath.row])!)
+                VirusViewModel.shared.praise(communityVideoItemModel: (self?.videoItemList[indexPath.row])!)
                 
-            case videoBtnClickType.typeCollect:                VirusViewModel.shared.collection(communityVideoItemModel: (self?.videoItemList?[indexPath.row])!)
+            case videoBtnClickType.typeCollect:                VirusViewModel.shared.collection(communityVideoItemModel: (self?.videoItemList[indexPath.row])!)
                 
             case videoBtnClickType.typePerson:
                 
@@ -331,15 +331,12 @@ extension CommunityVideoListController {
         SwiftMoyaNetWorkServiceCommunity.shared().communityVideoListApi(id: contentId ?? 0, page:page) {
             [weak self] (communityVideoListModel) -> (Void) in
             self?.videoListMdl = communityVideoListModel as? CommunityVideoListModel
-            self?.videoItemList = self?.videoListMdl?.data
-            self?.collectionView.reloadData()
-            
             if self?.videoListMdl?.pagination?.currentPage ?? 1  <= self?.videoListMdl?.pagination?.totalPages ?? 1 {
                 if self?.videoListMdl?.pagination?.currentPage == 1{
-                    self?.videoItemList?.removeAll()
+                    self?.videoItemList.removeAll()
                     self?.collectionView.resetNoMoreData()
                 }
-                self?.videoItemList = (self?.videoItemList)! + (self?.videoListMdl?.data!)!
+                self?.videoItemList = self!.videoItemList + (self?.videoListMdl?.data!)!
                 self?.collectionView.reloadData()
                 if  self?.videoListMdl?.pagination?.currentPage ?? 1 >= self?.videoListMdl?.pagination?.totalPages ?? 1 {
                     self?.collectionView.endFooterNoMoreData()
@@ -353,7 +350,7 @@ extension CommunityVideoListController {
     
     /// 阅读virue
     func readVirueRecordAddApi(_ indexRow: Int) {
-        let videoItemMdl = self.videoItemList![indexRow]
+        let videoItemMdl = self.videoItemList[indexRow]
         
         var postDesc : String?
         if videoItemMdl.title == nil ||  videoItemMdl.title == "" {
@@ -368,7 +365,7 @@ extension CommunityVideoListController {
     /// 删除帖子
     func communityDeleteApi(postId:Int,row:Int) {
         SwiftMoyaNetWorkServiceCommunity.shared().communityDeleteApi(postId: postId) { [weak self] (data) -> (Void) in
-            self?.videoItemList?.remove(at: row)
+            self?.videoItemList.remove(at: row)
             self?.collectionView.reloadData()
             self?.playFirstVideoWhenViewDidAppeared()
         }

+ 8 - 0
RainbowPlanet/RainbowPlanet/Tools/MJRefreshEX/UIScrollView+MJRefreshEX.h

@@ -38,6 +38,14 @@
  */
 - (void)addFooterWithAutomaticallyRefresh:(BOOL)automaticallyRefresh loadMoreBlock:(void(^)(NSInteger pageIndex))loadMoreBlock;
 
+/**
+ 上啦加载预加载
+ 
+ @param automaticallyRefresh 是否自动加载
+ @param loadMoreBlock 加载回调
+ */
+- (void)addFooterPreloadWithAutomaticallyRefresh:(BOOL)automaticallyRefresh loadMoreBlock:(void(^)(NSInteger pageIndex))loadMoreBlock;
+
 /**
  普通请求结束刷新头部
  */

+ 24 - 0
RainbowPlanet/RainbowPlanet/Tools/MJRefreshEX/UIScrollView+MJRefreshEX.m

@@ -113,6 +113,30 @@ typedef void(^LoadMoreBlock)(NSInteger pageIndex);
     }
 }
 
+- (void)addFooterPreloadWithAutomaticallyRefresh:(BOOL)automaticallyRefresh loadMoreBlock:(void(^)(NSInteger pageIndex))loadMoreBlock{
+    
+    __weak typeof(self) weakSelf = self;
+    self.loadMoreBlock = loadMoreBlock;
+    MJRefreshAutoNormalFooter * footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
+        weakSelf.pageIndex += 1;
+        if (weakSelf.loadMoreBlock) {
+            weakSelf.loadMoreBlock(weakSelf.pageIndex);
+        }
+        [weakSelf endFooterRefresh];
+    }];
+    
+    footer.automaticallyRefresh = automaticallyRefresh;
+    footer.triggerAutomaticallyRefreshPercent = -70;
+    footer.onlyRefreshPerDrag = YES;
+    
+    footer.stateLabel.font = [UIFont systemFontOfSize:13.0];
+    footer.stateLabel.textColor = [UIColor colorWithWhite:0.400 alpha:1.000];
+    [footer setTitle:@"加载中…" forState:MJRefreshStateRefreshing];
+    [footer setTitle:@"这是我的底线啦~" forState:MJRefreshStateNoMoreData];
+    
+    self.mj_footer = footer;
+}
+
 -(void)beginHeaderRefresh {
     
     [self resetPageNum];