From 24214562b017cd45edc04c39daa343c57de16aaa Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 14 Aug 2016 04:06:34 +0300 Subject: new infinite scroll --- Juick/Juick-Prefix.pch | 1 + Juick/MessagesViewController.h | 1 - Juick/MessagesViewController.m | 20 ++++++++++++-------- 3 files changed, 13 insertions(+), 9 deletions(-) (limited to 'Juick') diff --git a/Juick/Juick-Prefix.pch b/Juick/Juick-Prefix.pch index bd31eac..42ff0f3 100644 --- a/Juick/Juick-Prefix.pch +++ b/Juick/Juick-Prefix.pch @@ -16,6 +16,7 @@ #import #import #import + #import #import "NSString+HTML.h" #import "UIImage+Utils.h" #import "NSDate+TimeAgo.h" diff --git a/Juick/MessagesViewController.h b/Juick/MessagesViewController.h index b0c6a7f..38123bd 100644 --- a/Juick/MessagesViewController.h +++ b/Juick/MessagesViewController.h @@ -7,7 +7,6 @@ // #import -#import "SVPullToRefresh.h" @interface MessagesViewController : UITableViewController - (void)loadFromPath:(NSString *)messagesPath withParams:(NSDictionary *)params withTitle:(NSString *)title; diff --git a/Juick/MessagesViewController.m b/Juick/MessagesViewController.m index 2cf4267..25622a9 100644 --- a/Juick/MessagesViewController.m +++ b/Juick/MessagesViewController.m @@ -39,14 +39,8 @@ static NSString *CellIdentifier = @"MessageCell"; [self setParams:[[NSMutableDictionary alloc] initWithDictionary:params]]; self.title = title; __weak MessagesViewController * weakSelf = self; - [self.tableView addPullToRefreshWithActionHandler:^{ - [weakSelf.messages removeAllObjects]; - [weakSelf refreshData]; - }]; - [self.tableView addInfiniteScrollingWithActionHandler:^{ - [weakSelf refreshData]; - }]; - [self.tableView triggerPullToRefresh]; + [self.messages removeAllObjects]; + [weakSelf refreshData]; } - (void) refreshData { @@ -55,6 +49,7 @@ static NSString *CellIdentifier = @"MessageCell"; [Message pullNextFromPath:self.path params:self.params callback:^(NSArray *next) { [self.messages addObjectsFromArray:next]; [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; + [self.refreshControl performSelectorOnMainThread:@selector(endRefreshing) withObject:nil waitUntilDone:NO]; self.dataLoading = NO; }]; }); @@ -84,6 +79,15 @@ static NSString *CellIdentifier = @"MessageCell"; [self.tableView registerNib:[UINib nibWithNibName:@"MessageCell" bundle:nil] forCellReuseIdentifier:CellIdentifier]; self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 500.0f; + self.refreshControl = [UIRefreshControl new]; + [self.refreshControl addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventValueChanged]; + __weak MessagesViewController * weakSelf = self; + [self.tableView addInfiniteScrollWithHandler:^(UITableView * _Nonnull tableView) { + NSNumber *lastMid = ((Message *)[weakSelf.messages lastObject]).MID; + [weakSelf.params setValue:lastMid forKey:@"before_mid"]; + [weakSelf refreshData]; + [weakSelf.tableView finishInfiniteScroll]; + }]; } - (void) composePressed { -- cgit v1.2.3