/************************************************************
|
* * Hyphenate CONFIDENTIAL
|
* __________________
|
* Copyright (C) 2016 Hyphenate Inc. All rights reserved.
|
*
|
* NOTICE: All information contained herein is, and remains
|
* the property of Hyphenate Inc.
|
* Dissemination of this information or reproduction of this material
|
* is strictly forbidden unless prior written permission is obtained
|
* from Hyphenate Inc.
|
*/
|
|
#import "EaseRefreshTableViewController.h"
|
|
#import "MJRefresh.h"
|
#import "EaseLocalDefine.h"
|
|
@interface EaseRefreshTableViewController ()
|
|
@property (nonatomic, readonly) UITableViewStyle style;
|
|
@end
|
|
@implementation EaseRefreshTableViewController
|
|
@synthesize rightItems = _rightItems;
|
|
- (instancetype)initWithStyle:(UITableViewStyle)style
|
{
|
self = [super init];
|
if (self) {
|
_style = style;
|
}
|
|
return self;
|
}
|
|
- (void)viewDidLoad {
|
[super viewDidLoad];
|
|
// Uncomment the following line to preserve selection between presentations.
|
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
|
[self setEdgesForExtendedLayout:UIRectEdgeNone];
|
}
|
|
if (@available(iOS 11.0, *)) {
|
self.additionalSafeAreaInsets = UIEdgeInsetsMake(0, 0, iPhoneX_BOTTOM_HEIGHT, 0);
|
}
|
|
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:self.style];
|
_tableView.accessibilityIdentifier = @"table_view";
|
_tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
|
_tableView.delegate = self;
|
_tableView.dataSource = self;
|
_tableView.tableFooterView = self.defaultFooterView;
|
[self.view addSubview:_tableView];
|
|
_page = 0;
|
_showRefreshHeader = NO;
|
_showRefreshFooter = NO;
|
_showTableBlankView = NO;
|
}
|
|
- (void)didReceiveMemoryWarning {
|
[super didReceiveMemoryWarning];
|
// Dispose of any resources that can be recreated.
|
}
|
|
#pragma mark - setter
|
|
- (void)setShowRefreshHeader:(BOOL)showRefreshHeader
|
{
|
if (_showRefreshHeader != showRefreshHeader) {
|
_showRefreshHeader = showRefreshHeader;
|
if (_showRefreshHeader) {
|
__weak EaseRefreshTableViewController *weakSelf = self;
|
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
|
[weakSelf tableViewDidTriggerHeaderRefresh];
|
}];
|
self.tableView.mj_header.accessibilityIdentifier = @"refresh_header";
|
// header.updatedTimeHidden = YES;
|
}
|
else{
|
[self.tableView setMj_header:nil];
|
}
|
}
|
}
|
|
- (void)setShowRefreshFooter:(BOOL)showRefreshFooter
|
{
|
if (_showRefreshFooter != showRefreshFooter) {
|
_showRefreshFooter = showRefreshFooter;
|
if (_showRefreshFooter) {
|
__weak EaseRefreshTableViewController *weakSelf = self;
|
self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
|
[weakSelf tableViewDidTriggerFooterRefresh];
|
}];
|
self.tableView.mj_footer.accessibilityIdentifier = @"refresh_footer";
|
}
|
else{
|
[self.tableView setMj_footer:nil];
|
}
|
}
|
}
|
|
- (void)setShowTableBlankView:(BOOL)showTableBlankView
|
{
|
if (_showTableBlankView != showTableBlankView) {
|
_showTableBlankView = showTableBlankView;
|
}
|
}
|
|
#pragma mark - getter
|
|
- (NSMutableArray *)dataArray
|
{
|
if (_dataArray == nil) {
|
_dataArray = [NSMutableArray array];
|
}
|
|
return _dataArray;
|
}
|
|
- (NSMutableDictionary *)dataDictionary
|
{
|
if (_dataDictionary == nil) {
|
_dataDictionary = [NSMutableDictionary dictionary];
|
}
|
|
return _dataDictionary;
|
}
|
|
- (UIView *)defaultFooterView
|
{
|
if (_defaultFooterView == nil) {
|
_defaultFooterView = [[UIView alloc] init];
|
}
|
|
return _defaultFooterView;
|
}
|
|
#pragma mark - Table view data source
|
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
{
|
// Return the number of sections.
|
return 1;
|
}
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
{
|
// Return the number of rows in the section.
|
return 0;
|
}
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
{
|
static NSString *CellIdentifier = @"UITableViewCell";
|
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
|
|
// Configure the cell...
|
|
return cell;
|
}
|
|
#pragma mark - Table view delegate
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
|
{
|
return KCELLDEFAULTHEIGHT;
|
}
|
|
#pragma mark - public refresh
|
|
- (void)autoTriggerHeaderRefresh
|
{
|
if (self.showRefreshHeader) {
|
[self tableViewDidTriggerHeaderRefresh];
|
}
|
}
|
|
- (void)tableViewDidTriggerHeaderRefresh
|
{
|
|
}
|
|
- (void)tableViewDidTriggerFooterRefresh
|
{
|
|
}
|
|
- (void)tableViewDidFinishTriggerHeader:(BOOL)isHeader reload:(BOOL)reload
|
{
|
__weak EaseRefreshTableViewController *weakSelf = self;
|
dispatch_async(dispatch_get_main_queue(), ^{
|
if (reload) {
|
[weakSelf.tableView reloadData];
|
}
|
|
if (isHeader) {
|
[weakSelf.tableView.mj_header endRefreshing];
|
}
|
else{
|
[weakSelf.tableView.mj_footer endRefreshing];
|
}
|
});
|
}
|
|
@end
|