Commit ab334129 cgx

优化加载页面

1 个父辈 4294cdf2
......@@ -26,10 +26,15 @@
[self.dataSource addDataArray:self.articleVM.articleArr];
}
- (void)fireHandler {
[super fireHandler];
[self.articleView.mj_header beginRefreshing];
}
- (void)getArticleListRequest:(BOOL)loadMore {
[self.articleVM querySsmianKnowledgeListWithLoadMore:loadMore completion:^(ArticleRequestModel * _Nonnull requestModel) {
[self endRefreshing:loadMore];
if (requestModel.resCode == DSResCodeSuccess) {
if (requestModel.articleArr.count == 0) {
[self updateDefalutView:DefaultTypeEmpty info:@""];
......
......@@ -26,6 +26,11 @@
[self.evaluateListView.mj_header beginRefreshing];
}
- (void)fireHandler {
[super fireHandler];
[self.evaluateListView.mj_header beginRefreshing];
}
- (void)getEvaluateListData {
[EvaluateRequestModel queryCommunityEvaluationListWithCompletion:^(EvaluateRequestModel * _Nonnull requestModel) {
[self.evaluateListView.mj_header endRefreshing];
......
......@@ -26,6 +26,11 @@
[self.listView.mj_header beginRefreshing];
}
- (void)fireHandler {
[super fireHandler];
[self.listView.mj_header beginRefreshing];
}
- (void)getListDataRequest {
[OfficialNotiViewModel queryUserOfficeMessagesWithCompletion:^(OfficialNotiViewModel * _Nonnull viewModel) {
[self.listView.mj_header endRefreshing];
......
......@@ -5,12 +5,12 @@
// Created by peter on 2022/10/11.
//
#import <UIKit/UIKit.h>
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
/// 点赞列表
@interface PraiseListController : UITableViewController
@interface PraiseListController : BaseViewController
@end
......
......@@ -9,8 +9,9 @@
#import "PraiseCell.h"
#import "PraiseListViewModel.h"
@interface PraiseListController ()
@interface PraiseListController () <UITableViewDelegate>
@property (nonatomic, strong) DSDataSource *dataSource;
@property (nonatomic, strong) UITableView *listView;
@property (nonatomic, assign) int offset;
@property (nonatomic, strong) NSMutableArray *praiseList;
@property (nonatomic, strong) ExceptionDefaultView *exceptionView;
......@@ -23,48 +24,40 @@
[self initUI];
[self.tableView.mj_header beginRefreshing];
[self.listView.mj_header beginRefreshing];
}
#pragma mark - init
- (void)initUI {
self.navigationItem.title = @"收到的赞";
self.view.dk_backgroundColorPicker = DKColorPickerWithKey(VCViewBG);
self.offset = 1;
self.praiseList = [NSMutableArray array];
[self.dataSource addDataArray:self.praiseList];
self.tableView.dk_backgroundColorPicker = DKColorPickerWithKey(VCViewBG);
self.tableView.showsVerticalScrollIndicator = NO;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.tableView registerClass:[PraiseCell class] forCellReuseIdentifier:NSStringFromClass([PraiseCell class])];
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 24 + Bottom_SafeArea_Height)];
}
WS(weakSelf);
self.tableView.mj_header = [DSGifHeader headerWithRefreshingBlock:^{
[weakSelf getPraiseList:NO];
}];
self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
[weakSelf getPraiseList:YES];
}];
- (void)fireHandler {
[super fireHandler];
[self.listView.mj_header beginRefreshing];
}
- (void)getPraiseList:(BOOL)loadMore {
if (loadMore == NO) { self.offset = 1; }
[PraiseListViewModel queryUserDynamicPraiseWithOffset:self.offset completion:^(PraiseListViewModel * _Nonnull viewModel) {
[self.tableView.mj_footer endRefreshing];
[self.tableView.mj_header endRefreshing];
[self.listView.mj_footer endRefreshing];
[self.listView.mj_header endRefreshing];
if (viewModel.resCode == DSResCodeSuccess) {
if (self.praiseList.count == 0 && viewModel.resultArr.count == 0) {
[self dealErrorWithType:ExceptionTypeNoData errInfo:@""];
[self updateDefalutView:DefaultTypeEmpty info:@""];
return;
}
if (loadMore) {
if (viewModel.resultArr.count == 0) {
[self.tableView.mj_footer endRefreshingWithNoMoreData];
[self.listView.mj_footer endRefreshingWithNoMoreData];
}
[self.praiseList addObjectsFromArray:viewModel.resultArr];
} else {
......@@ -73,18 +66,18 @@
}
self.exceptionView.hidden = YES;
[self.dataSource addDataArray:self.praiseList];
[self.tableView reloadData];
[self.listView reloadData];
} else {
if (self.praiseList.count) {
[DSProgressHUD showToast:viewModel.errMessage];
} else {
[self dealErrorWithType:ExceptionTypeNet errInfo:viewModel.errMessage];
[self updateDefalutView:DefaultTypeNet info:viewModel.errMessage];
}
}
}];
}
#pragma mark - UITableViewDelegate, UITableViewDataSource
#pragma mark - UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 97;
}
......@@ -96,30 +89,31 @@
cell.praiseModel = model;
};
_dataSource = [[DSDataSource alloc] initWithIdentifier:NSStringFromClass([PraiseCell class]) datas:@[] isSection:NO configureBlock:cellBlock];
self.tableView.dataSource = _dataSource;
UITableView *listView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
listView.separatorStyle = UITableViewCellSeparatorStyleNone;
listView.delegate = self;
listView.dataSource = _dataSource;
listView.showsVerticalScrollIndicator = NO;
listView.backgroundColor = DSClearColor;
listView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
[listView registerClass:[PraiseCell class] forCellReuseIdentifier:NSStringFromClass([PraiseCell class])];
listView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 24 + Bottom_SafeArea_Height)];
[self.view addSubview:listView];
[listView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view);
}];
self.listView = listView;
WS(weakSelf);
self.listView.mj_header = [DSGifHeader headerWithRefreshingBlock:^{
[weakSelf getPraiseList:NO];
}];
self.listView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
[weakSelf getPraiseList:YES];
}];
}
return _dataSource;
}
- (ExceptionDefaultView *)exceptionView {
if (!_exceptionView) {
_exceptionView = [[ExceptionDefaultView alloc] initWithType:ExceptionTypeNet block:^{
} superView:self.view];
}
return _exceptionView;
}
#pragma mark - 品牌模式
- (NaviStyle)navigationBarStyle {
return NaviStyleDefault;
}
- (void)dealErrorWithType:(ExceptionType)type errInfo:(NSString *)errInfo {
self.exceptionView.hidden = NO;
[self.exceptionView showErrorInfo:type];
if (type == ExceptionTypeNet) {
[self.exceptionView showServerErrInfo:errInfo];
}
}
@end
......@@ -32,6 +32,11 @@
self.edgesForExtendedLayout = UIRectEdgeNone;
}
- (void)fireHandler {
[super fireHandler];
[self.myDynamicView reRefresh];
}
#pragma mark - MyDynamicViewDelegate
- (void)getDynamicListRequest:(BOOL)loadMore {
if (loadMore == NO) { self.offset = 1; }
......
......@@ -50,6 +50,8 @@ NS_ASSUME_NONNULL_BEGIN
/// 删除成功取消确认框
- (void)deleteSuccess;
/// 失败重新刷新
- (void)reRefresh;
@end
NS_ASSUME_NONNULL_END
......@@ -59,6 +59,10 @@
[self.deleteConfirmBox dismiss];
}
- (void)reRefresh {
[self.listView.mj_header beginRefreshing];
}
#pragma mark - ConfirmBoxDelegate
- (void)excuteDeleteAction:(NSIndexPath *)indexPath {
ComDynModel *model = self.myDynVM.listArr[indexPath.section];
......@@ -139,7 +143,7 @@
_listView.separatorStyle = UITableViewCellSeparatorStyleNone;
_listView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
_listView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, CGFLOAT_MIN)];;
WS(weakSelf);
_listView.mj_header = [DSGifHeader headerWithRefreshingBlock:^{
if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(getDynamicListRequest:)]) {
......
......@@ -52,7 +52,8 @@
NSString *api = @"query_relax_meditation_audios";
NSString *argStr = [NSString stringWithFormat:@"query{%@(type_id:%d)}", api, type_id];
SafeSleepRequestModel * requestModel = [[SafeSleepRequestModel alloc] init];
return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:YES success:^(NSDictionary *apiDic) {
BOOL hasFailInfo = type_id == 501 ? NO : YES;
return [self httpPostBodyRequestWithAPI:api params:@{@"query" : argStr} view:nil hasNetActivity:YES loadingInfo:nil hasFailInfo:hasFailInfo success:^(NSDictionary *apiDic) {
requestModel.resCode = DSResCodeSuccess;
DSLog(@"睡眠-放松训练-冥想分类详情数据接口dataDic:%@", apiDic);
NSDictionary *resultDic = apiDic[@"result"];
......
......@@ -26,6 +26,11 @@
self.navigationItem.title = @"睡前故事";
}
- (void)fireHandler {
[super fireHandler];
[self.sleepStoryView reRefresh];
}
#pragma mark - SleepStoryViewDelegate
- (void)getSleepStoryListData {
[SafeSleepRequestModel queryRelaxMeditationAudiosWithTypeID:501 completion:^(SafeSleepRequestModel * _Nonnull requestModel) {
......@@ -37,7 +42,8 @@
[self.sleepStoryView updateList:requestModel.subAudioListData];
}
} else {
[DSProgressHUD showToast:requestModel.errMessage];
[self.sleepStoryView endRefresh];
[self updateDefalutView:DefaultTypeNet info:requestModel.errMessage];
}
}];
......
......@@ -24,7 +24,8 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithDelegate:(id<SleepStoryViewDelegate>)delegate;
- (void)updateList:(NSArray *)dataList;
- (void)endRefresh;
- (void)reRefresh;
@end
NS_ASSUME_NONNULL_END
......@@ -31,6 +31,14 @@
[self.storyListView.mj_header endRefreshing];
}
- (void)endRefresh {
[self.storyListView.mj_header endRefreshing];
}
- (void)reRefresh {
[self.storyListView.mj_header beginRefreshing];
}
#pragma mark - UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 105;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!