日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BSPreloadTableVew带有预加载功能的tableView

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BSPreloadTableVew带有预加载功能的tableView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BSPreloadTableVew

  • 一個實現了下拉刷新,上拉加載更多,上拉預加載功能的tableViw
  • 用的時候只要繼承這個tableView即可實現上述功能,可以重寫父類實現自定義樣式。
  • 效果

    用法

  • pod 'BSPreloadTableVew'
  • 代碼示例
  • - (void)viewDidLoad { [super viewDidLoad];self.pageSize = 20; self.pageNum = 1;[self setUpUI];__weak typeof(self) weakeSelf = self; [self.tableView setLoadNewData:^{ __strong typeof(weakeSelf) stongSelf = weakeSelf; stongSelf.pageNum = 1; [stongSelf fetchData]; }]; // [self.tableView setLoadMoreData:^{ // __strong typeof(weakeSelf) stongSelf = weakeSelf; // [stongSelf fetchData]; // }];[self.tableView preLoadDataThreshold4WithPageSize:self.pageSize initialPage:self.pageNum curPage:self.pageNum preLoadFetchBlk:^{ __strong typeof(weakeSelf) stongSelf = weakeSelf; [stongSelf fetchData]; }];[self showLoading]; [self fetchData]; } - (void)fetchData{ NSDictionary *dict = @{ @"page":@(self.pageNum), @"count":@(self.pageSize) }; __weak typeof(self) weakeSelf = self; [[BSRequestManager sharedInstance] postWithUrl:@"https://api.apiopen.top/getTangPoetry" args:dict finishBlk:^(NSDictionary * _Nonnull responseObject, NSError * _Nonnull error) { __strong typeof(weakeSelf) stongSelf = weakeSelf; [stongSelf.tableView endRefresh]; [stongSelf hideLoading];if (error) { [stongSelf.view makeToast:error.localizedDescription]; stongSelf.tableView.isPreLoadRefreshing = NO; return ; }//請求成功 if (stongSelf.pageNum == 1){ NSArray *arrTemp = responseObject[@"result"]; stongSelf.arrMList = [NSMutableArray arrayWithArray:arrTemp];if (stongSelf.arrMList.count == 0) { //無數據缺省頁return ; } else if (stongSelf.arrMList.count < stongSelf.pageSize) { [stongSelf.tableView hideFooter]; stongSelf.tableView.isPreLoadLastPage = YES; } else { [stongSelf.tableView showFooter]; } [stongSelf.tableView reloadData]; } else { NSArray *arrTemp = responseObject[@"result"]; [stongSelf.arrMList addObjectsFromArray:arrTemp];[stongSelf.tableView reloadData];if (arrTemp.count < stongSelf.pageSize) { stongSelf.tableView.isPreLoadLastPage = YES; [stongSelf.tableView hideFooter]; } else { [stongSelf.tableView showFooter]; } } stongSelf.pageNum ++; stongSelf.tableView.isPreLoadRefreshing = NO; }]; }#pragma mark - UITableViewDelegate - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.arrMList.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = nil;TableViewCellTest *cellTest = [self.tableView dequeueReusableCellWithIdentifier:@"TableViewCellTest"]; cellTest.data = self.arrMList[indexPath.row];cell = cellTest; return cell; }- (void)showLoading{ [MBProgressHUD showHUDAddedTo:self.view animated:YES]; }- (void)hideLoading{ [MBProgressHUD hideHUDForView:self.view animated:YES]; } 復制代碼

    轉載于:https://juejin.im/post/5d0857cbe51d45778f076d41

    總結

    以上是生活随笔為你收集整理的BSPreloadTableVew带有预加载功能的tableView的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。