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 ++++++++++++-------- Podfile | 24 ++++++++++++------------ Podfile.lock | 8 ++++---- 5 files changed, 29 insertions(+), 25 deletions(-) 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 { diff --git a/Podfile b/Podfile index bdaa121..14ac0e8 100644 --- a/Podfile +++ b/Podfile @@ -2,20 +2,20 @@ platform :ios, "9.0" target "Juick" do -pod 'MWFeedParser' -pod 'TTTAttributedLabel' -pod 'SWRevealViewController' -pod 'PDKeychainBindingsController' -pod 'RestKit', '~> 0.26.0' -pod 'SDWebImage' -pod 'FontAwesome+iOS' -pod 'NSDate+TimeAgo' -pod 'SVPullToRefresh' -pod 'SIAlertView' -pod 'XLForm' + pod 'UIScrollView-InfiniteScroll' + pod 'MWFeedParser' + pod 'TTTAttributedLabel' + pod 'SWRevealViewController' + pod 'PDKeychainBindingsController' + pod 'RestKit', '~> 0.26.0' + pod 'SDWebImage' + pod 'FontAwesome+iOS' + pod 'NSDate+TimeAgo' + pod 'SIAlertView' + pod 'XLForm' end target "JuickTests" do - + end diff --git a/Podfile.lock b/Podfile.lock index badffdb..09b8c5b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -39,10 +39,10 @@ PODS: - SDWebImage/Core (3.8.1) - SIAlertView (1.3) - SOCKit (1.1) - - SVPullToRefresh (0.4.1) - SWRevealViewController (2.3.0) - TransitionKit (2.2.1) - TTTAttributedLabel (2.0.0) + - UIScrollView-InfiniteScroll (0.9.1) - XLForm (3.2.0) DEPENDENCIES: @@ -53,9 +53,9 @@ DEPENDENCIES: - RestKit (~> 0.26.0) - SDWebImage - SIAlertView - - SVPullToRefresh - SWRevealViewController - TTTAttributedLabel + - UIScrollView-InfiniteScroll - XLForm SPEC CHECKSUMS: @@ -70,12 +70,12 @@ SPEC CHECKSUMS: SDWebImage: 35f9627a3e44b4f292a8a8ce6a531fa488239b91 SIAlertView: 20c794b55eaf44d888773ea51647cf8907723919 SOCKit: c7376ac262bea9115b8f749358f762522a47d392 - SVPullToRefresh: ba2e718695a43253d8bea6852d2960097dc15d8c SWRevealViewController: 6d3fd97f70112fd7cef9de14df4260eacce4c63a TransitionKit: 9ceccda4cd0cdc0a05ef85eb235e5a3292c3c250 TTTAttributedLabel: 8cffe8e127e4e82ff3af1e5386d4cd0ad000b656 + UIScrollView-InfiniteScroll: 14e204c50ca4040467e1cbfa141dad7a18919b56 XLForm: 2250b4e96ab8ffa5f3355838c79edd90de451782 -PODFILE CHECKSUM: 7d654a17d555aa7dc2db35b869b150e1cdfde1d6 +PODFILE CHECKSUM: ae435862624639d3aaa4efde0455ce6631e1b0f7 COCOAPODS: 1.0.1 -- cgit v1.2.3