From 6cb05589d40a3c1f54361ec5076e5c4b3e1fd45a Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Sun, 2 Aug 2015 10:58:46 +0530 Subject: [PATCH 1/8] Adding pull to refresh --- SwipeView/SwipeView.h | 2 ++ SwipeView/SwipeView.m | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/SwipeView/SwipeView.h b/SwipeView/SwipeView.h index 2fb12dd..b4181c9 100755 --- a/SwipeView/SwipeView.h +++ b/SwipeView/SwipeView.h @@ -85,6 +85,7 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) @property (nonatomic, readonly, getter = isScrolling) BOOL scrolling; @property (nonatomic, assign) BOOL defersItemViewLoading; @property (nonatomic, assign, getter = isVertical) BOOL vertical; +@property (nonatomic, assign) BOOL pullToRefresh; - (void)reloadData; - (void)reloadItemAtIndex:(NSInteger)index; @@ -121,6 +122,7 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) - (void)swipeViewDidEndScrollingAnimation:(SwipeView *)swipeView; - (BOOL)swipeView:(SwipeView *)swipeView shouldSelectItemAtIndex:(NSInteger)index; - (void)swipeView:(SwipeView *)swipeView didSelectItemAtIndex:(NSInteger)index; +- (void)swipeViewHandleRefresh:(SwipeView *)swipeView; @end diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index 04e942b..4109287 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -61,6 +61,7 @@ - (void)swipeViewDidEndDecelerating:(__unused SwipeView *)swipeView {} - (void)swipeViewDidEndScrollingAnimation:(__unused SwipeView *)swipeView {} - (BOOL)swipeView:(__unused SwipeView *)swipeView shouldSelectItemAtIndex:(__unused NSInteger)index { return YES; } - (void)swipeView:(__unused SwipeView *)swipeView didSelectItemAtIndex:(__unused NSInteger)index {} +- (void)swipeViewHandleRefresh:(__unused SwipeView *)swipeView {} @end @@ -102,6 +103,7 @@ - (void)setUp _truncateFinalPage = NO; _defersItemViewLoading = NO; _vertical = NO; + _pullToRefresh = NO; _scrollView = [[UIScrollView alloc] init]; _scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; @@ -131,6 +133,12 @@ - (void)setUp tapGesture.delegate = self; [_scrollView addGestureRecognizer:tapGesture]; + if(_pullToRefresh){ + UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; + refreshControl.tintColor = [UIColor grayColor]; + [refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; + [_scrollView addSubview:refreshControl]; + } self.clipsToBounds = YES; //place scrollview at bottom of hierarchy @@ -1131,6 +1139,12 @@ - (void)didTap:(UITapGestureRecognizer *)tapGesture } } +- (void)didPullToRefresh:(UIRefreshControl *)refreshControl +{ + + [_delegate swipeViewHandleRefresh:self]; +} + #pragma mark - #pragma mark UIScrollViewDelegate methods From 0eefa0a04b57583f3e19321ea11ff62084ee6a28 Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Sun, 2 Aug 2015 11:16:59 +0530 Subject: [PATCH 2/8] Adding to Demo, moving UIRefreshControl init out of setup() --- .../Paging Example/ExampleViewController.m | 20 +++++++++++++++++++ SwipeView/SwipeView.h | 2 +- SwipeView/SwipeView.m | 19 ++++++++++++------ 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Examples/Paging Example/ExampleViewController.m b/Examples/Paging Example/ExampleViewController.m index de504d4..a7514eb 100644 --- a/Examples/Paging Example/ExampleViewController.m +++ b/Examples/Paging Example/ExampleViewController.m @@ -52,6 +52,8 @@ - (void)viewDidLoad //configure swipeView _swipeView.pagingEnabled = YES; + _swipeView.pullToRefresh = YES; // Adds UIRefreshControl + _swipeView.vertical = YES; // Must be vertical for UIRefreshControl to work } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation @@ -119,4 +121,22 @@ - (CGSize)swipeViewItemSize:(SwipeView *)swipeView return self.swipeView.bounds.size; } +/* Handler for UIRefreshControl */ + +-(void)swipeViewHandleRefresh:(SwipeView *)swipeView{ + + // Simulate network call delay + double delayInSeconds = 2; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); + //execute the code after .5 seconds + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + + //once all the data has been fetched + //we should end the refresh animation by + //calling the endRefreshing Method of UIRefreshControl + [_swipeView.refreshControl endRefreshing]; + + }); +} + @end diff --git a/SwipeView/SwipeView.h b/SwipeView/SwipeView.h index b4181c9..a046db1 100755 --- a/SwipeView/SwipeView.h +++ b/SwipeView/SwipeView.h @@ -86,7 +86,7 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) @property (nonatomic, assign) BOOL defersItemViewLoading; @property (nonatomic, assign, getter = isVertical) BOOL vertical; @property (nonatomic, assign) BOOL pullToRefresh; - +@property (nonatomic,strong) UIRefreshControl *refreshControl; - (void)reloadData; - (void)reloadItemAtIndex:(NSInteger)index; - (void)scrollByOffset:(CGFloat)offset duration:(NSTimeInterval)duration; diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index 4109287..a046a6e 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -133,12 +133,6 @@ - (void)setUp tapGesture.delegate = self; [_scrollView addGestureRecognizer:tapGesture]; - if(_pullToRefresh){ - UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; - refreshControl.tintColor = [UIColor grayColor]; - [refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; - [_scrollView addSubview:refreshControl]; - } self.clipsToBounds = YES; //place scrollview at bottom of hierarchy @@ -299,6 +293,19 @@ - (void)setVertical:(BOOL)vertical } } +- (void)setPullToRefresh:(BOOL)pullToRefresh +{ + if (_pullToRefresh != pullToRefresh) + { + _pullToRefresh = pullToRefresh; + + _refreshControl = [[UIRefreshControl alloc] init]; + _refreshControl.tintColor = [UIColor grayColor]; + [_refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; + [_scrollView addSubview:_refreshControl]; + } +} + - (BOOL)isDragging { return _scrollView.dragging; From 72e138a10114d5640b102fb28f7b6cd9c867cf60 Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Wed, 5 Aug 2015 17:36:41 +0530 Subject: [PATCH 3/8] adding more events for refresh controller --- SwipeView/SwipeView.h | 3 ++- SwipeView/SwipeView.m | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) mode change 100755 => 100644 SwipeView/SwipeView.h diff --git a/SwipeView/SwipeView.h b/SwipeView/SwipeView.h old mode 100755 new mode 100644 index a046db1..0de0961 --- a/SwipeView/SwipeView.h +++ b/SwipeView/SwipeView.h @@ -123,7 +123,8 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) - (BOOL)swipeView:(SwipeView *)swipeView shouldSelectItemAtIndex:(NSInteger)index; - (void)swipeView:(SwipeView *)swipeView didSelectItemAtIndex:(NSInteger)index; - (void)swipeViewHandleRefresh:(SwipeView *)swipeView; - +- (void)swipeViewWillBeginRefreshing:(SwipeView *)swipeView; +- (void)swipeViewDidEndRefreshing:(SwipeView *)swipeView; @end diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index a046a6e..1d35847 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -62,6 +62,8 @@ - (void)swipeViewDidEndScrollingAnimation:(__unused SwipeView *)swipeView {} - (BOOL)swipeView:(__unused SwipeView *)swipeView shouldSelectItemAtIndex:(__unused NSInteger)index { return YES; } - (void)swipeView:(__unused SwipeView *)swipeView didSelectItemAtIndex:(__unused NSInteger)index {} - (void)swipeViewHandleRefresh:(__unused SwipeView *)swipeView {} +- (void)swipeViewWillBeginRefreshing:(__unused SwipeView *)swipeView {} +- (void)swipeViewDidEndRefreshing:(__unused SwipeView *)swipeView {} @end @@ -301,7 +303,9 @@ - (void)setPullToRefresh:(BOOL)pullToRefresh _refreshControl = [[UIRefreshControl alloc] init]; _refreshControl.tintColor = [UIColor grayColor]; - [_refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; + [_refreshControl addTarget:self action:@selector(willPullToRefresh:) forControlEvents:UIControlEventTouchDragEnter]; + [_refreshControl addTarget:self action:@selector(isPullingToRefresh:) forControlEvents:UIControlEventValueChanged]; + [_refreshControl addTarget:self action:@selector(didPullToRefresh::) forControlEvents:UIControlEventTouchDragExit]; [_scrollView addSubview:_refreshControl]; } } @@ -1146,12 +1150,23 @@ - (void)didTap:(UITapGestureRecognizer *)tapGesture } } -- (void)didPullToRefresh:(UIRefreshControl *)refreshControl +- (void)isPullingToRefresh:(UIRefreshControl *)refreshControl { [_delegate swipeViewHandleRefresh:self]; } +- (void)willPullToRefresh:(UIRefreshControl *)refreshControl +{ + + [_delegate swipeViewWillBeginRefreshing:self]; +} + +- (void)didPullToRefresh:(UIRefreshControl *)refreshControl +{ + + [_delegate swipeViewDidEndRefreshing:self]; +} #pragma mark - #pragma mark UIScrollViewDelegate methods From c7bc304339e64f8d5a36f1fac498ab9933f20934 Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Wed, 5 Aug 2015 17:56:15 +0530 Subject: [PATCH 4/8] reverting events --- SwipeView/SwipeView.h | 2 -- SwipeView/SwipeView.m | 18 ++---------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/SwipeView/SwipeView.h b/SwipeView/SwipeView.h index 0de0961..08bd26c 100644 --- a/SwipeView/SwipeView.h +++ b/SwipeView/SwipeView.h @@ -123,8 +123,6 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) - (BOOL)swipeView:(SwipeView *)swipeView shouldSelectItemAtIndex:(NSInteger)index; - (void)swipeView:(SwipeView *)swipeView didSelectItemAtIndex:(NSInteger)index; - (void)swipeViewHandleRefresh:(SwipeView *)swipeView; -- (void)swipeViewWillBeginRefreshing:(SwipeView *)swipeView; -- (void)swipeViewDidEndRefreshing:(SwipeView *)swipeView; @end diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index 1d35847..7970598 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -303,9 +303,7 @@ - (void)setPullToRefresh:(BOOL)pullToRefresh _refreshControl = [[UIRefreshControl alloc] init]; _refreshControl.tintColor = [UIColor grayColor]; - [_refreshControl addTarget:self action:@selector(willPullToRefresh:) forControlEvents:UIControlEventTouchDragEnter]; - [_refreshControl addTarget:self action:@selector(isPullingToRefresh:) forControlEvents:UIControlEventValueChanged]; - [_refreshControl addTarget:self action:@selector(didPullToRefresh::) forControlEvents:UIControlEventTouchDragExit]; + [_refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; [_scrollView addSubview:_refreshControl]; } } @@ -1150,22 +1148,10 @@ - (void)didTap:(UITapGestureRecognizer *)tapGesture } } -- (void)isPullingToRefresh:(UIRefreshControl *)refreshControl -{ - - [_delegate swipeViewHandleRefresh:self]; -} - -- (void)willPullToRefresh:(UIRefreshControl *)refreshControl -{ - - [_delegate swipeViewWillBeginRefreshing:self]; -} - - (void)didPullToRefresh:(UIRefreshControl *)refreshControl { - [_delegate swipeViewDidEndRefreshing:self]; + [_delegate swipeViewHandleRefresh:self]; } #pragma mark - From f3ef8579a53d7d077047da7aadfb019eea748c34 Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Fri, 25 Sep 2015 11:18:27 +0530 Subject: [PATCH 5/8] Default refresh controller --- .../contents.xcworkspacedata | 7 ++ .../xcshareddata/SwipeViewExample.xccheckout | 41 ++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 9831 bytes .../xcschemes/SwipeViewExample.xcscheme | 88 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 22 +++++ .../contents.xcworkspacedata | 7 ++ .../xcshareddata/SwipeViewExample.xccheckout | 41 ++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 17161 bytes .../WorkspaceSettings.xcsettings | 10 ++ .../xcdebugger/Breakpoints_v2.xcbkptlist | 71 ++++++++++++++ .../xcschemes/xcschememanagement.plist | 14 +++ SwipeView/SwipeView.m | 6 +- 12 files changed, 305 insertions(+), 2 deletions(-) create mode 100644 Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout create mode 100644 Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Examples/Controls Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/SwipeViewExample.xcscheme create mode 100644 Examples/Controls Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout create mode 100644 Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/WorkspaceSettings.xcsettings create mode 100644 Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout b/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout new file mode 100644 index 0000000..12c8217 --- /dev/null +++ b/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 9E03858C-9E51-4650-BF55-515F91E7981C + IDESourceControlProjectName + SwipeViewExample + IDESourceControlProjectOriginsDictionary + + C663044A1215EDAE9BFEE2935FD16744DA3876FB + github.com:praveenaj/SwipeView.git + + IDESourceControlProjectPath + Examples/Controls Example/SwipeViewExample.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + C663044A1215EDAE9BFEE2935FD16744DA3876FB + ../../../.. + + IDESourceControlProjectURL + github.com:praveenaj/SwipeView.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + C663044A1215EDAE9BFEE2935FD16744DA3876FB + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + C663044A1215EDAE9BFEE2935FD16744DA3876FB + IDESourceControlWCCName + SwipeView + + + + diff --git a/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/UserInterfaceState.xcuserstate b/Examples/Controls Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..45d53bfe86292285e63e3e11cb5c6f27e42dfca0 GIT binary patch literal 9831 zcmcgx33OA{);{Ol%t_NsO`6=K1!*e^9qB9rEu~tarF5bL5YqNi0%;PGw51@hQA9*V zz!_BN00^QC&fH2M2jFA+{kRBOO47wH#Mc1M0(J(X|C8HEngvOy_bQ8K6m7rVDcr*c(qB1lQ zm7^Lo8BIaWh(j|_3z~`Cs2z2n`Dh_pita?q&?D$kv<9t3kD%engkhztCkY!eT7JQf$L zI0+BO$#?|L#G~+NJO&rwadsoCFBmWl&m24k%!4z@)%i9y2v)No$Mex$+P4+@)CKO>>+QHz2qIT zk981T&f$ z!xS*3Oc^tgsb*@J$xJKbW;~3SnZx)PKNDcun0BUvnagxC^O*U}qUr>9o6B_w$&msn zkqSj4-Q=>$l-XRTzn=c>i=Uc=CYQtS??zEb4Fs5Oq(NE`!80(}u1UztDk{n>PRmWs z%g)G6&dkUuOwKDR9+x~WZN%8@+?<>dIR%AwjiIDy++>e$w%_Y$;)*;?ZLOR;5K?SJ zaVTjMGND*xMi#^(E3$zYBp?MD$UyLW8LVCX|2@K?PgkX=;lYOpptScFm}P z@~a$;V?FMG&*O4&K6_r?xZ;AW;)3L{d0BGXo8 z0L{azOSEguVJoUU9#^BoSK_a6`kjp~YEW$dn4__9z);AEsVEO6ZANJ*9c7>qC=+F& zY?Om?AqvzG4I0pb4)kDvn9V4kI&mbr5sgBl>8Aoz2uAA2STI8p6wpt%z6yV=8BQI?5dF&K3t9X`m0NdnPy%gXB~xue<-eQd&cfoP;V-QWvTKOBbpFmUo1_awqknai` z0@Q{fFnGuq&!7Ps=AzDNWtF9E0SAq;0-w*(*@Nbyd8n1*K=7+z$gOCBU84_A?AP9d zZsqld)Gk7|p`>mEXfa$1L%Y#pv;>C2bwM9iaxPkpxaROl+ckq~n>@{23O$_h&Ol0d zAf+wccXjIy=Vox53Yw{FdUL01yVPnRVWeNPyauN9)dKA z2zm7X4KR||%OlUYxn766nQIOnU6qfc`NSu91=mE=GlWJoRsx*Q>24Y4=AF?j1Yy{y z2pNUk43CcsuMk99smRK)rIi6kpv@m1>yyR@WM480PKBGI)&Tr`9-JZJfWrKXB?s^dujtn_xs2+6O zCH0_Z&^ELkvLG9B_%HN_e&K%-%dfJyE-XzJGH(}pEo|QFkPm}H1G~{%C~5urpv&ja zPa8fcZNczC^E0yYh7Zcg%wDh{H18esURc2UaAUuK570;9-FytAAThM!AUezsY=i7B zbOc8C4;)9I@&hMeOjmFp{Qmzat52cR{M=wxe+7k*C}i+i)X;;zM(5CZ7z^Xzrv5Cx zh`x)+piJ~Vh0r2CgS=yc85FYbC-jeqnYrkn5Cg^h%)23C=5H7coQW|ea5I$fXUs!t z7`=Fq3ahbe?5Wj$%IQ+QK1VypxgE1o$I`S(bxy2I4IfZy-+BA#Sg`c@2lYMapA&lU z2R_0wtfM6a%drA0u?k0FHIBv_tc3|s3S}@6%3%^zKqXXdMv2%!OGiG+$FbOqEtsVl zS4~TYk^bBc55dE*PKZZ}%0*mbTT2V)6QJElcPe0UDcyygri;7T;cMn0nul;Nm{Dd-CeoPyJM0jW^ih0~!9601rb zPIqWD3+EwS56;FpI2Y=n0jBg|-kT#~D)r!EJ|wP-P{+dxS4j)5yCwKBjKQ?p*)=hd zbNg`R%I7z6o>ng4>kP&|F2qG$cq~kV&X7^XxQr4pd=tJIm*89Qcsv1@f*q!V0~(E#*(n}XI-0#gudLU?G6 zJP>*w0?5)49-zyD1k4G|@#PJdNx2#r-&OrVU)+t%oEHuW)CO1+Ys zlKq}GUsDJd@pQ}~T`zXvM%;v(VJ0|X7R>I&GjI!yaVNN-l}5IkKabdQpR<)#+>nMU zXDjCqP?V)C_==%Eq#rxe;d9WM=c{nITezt=JDa%zm#f6@r%+DA>54_6Y7n_=6YI;^i)`A)VUXNfu4j?6N!|k{O&&8d19?GXk60&cCrzsfm)B3%`bD`jj zRvL=^k9q1z>*L&sGeT?o$6y}Jfd$|Nqg|64uGbN#Qsm*qrGzP8xO@w7wh$Nf;6)hl zV(>v5bkKOiOYj}E<2Zru#LMdYbyWwgpuyyafQAWD4}3Si$FAW^Yk&Mu`7{fHbITo0 zUpKxNwf--2LK?T>m3SGge(h8N?t6$Ipn10p=F+_5xosFy``}VwK=bgU-8?Tkgx6A+ zKZYO2PvCV8&3&B=4Ys;KC>&ru+zQC9nK^?dLw;)N{|UVlGtxqEeWgLESK_zesBYXt zIU1#up)(Afe>d*s{d2V;VdX}=$*vhnT^w<${r-;3*KYhIFYZszw`-EZVZ+lr0Tn_< zrc?&gkuPY6@Ke;aTk$&l41S#NLmM4_u7UpbaV{Fj?HnKgm@nA81MjRZtE7JK#ye1} z5NOZwfc8Ax2A#Bg^mCBhT$(t!X(PfM1iy@5M@hZ-6}$_-ieG~za0e`fJA3gP_)Qug zZ^1HHK_g@(B-T#gW(1p*x(a8@%;2Yb0se!vOB2HvtxzKqE0Ma;cmF6m-5tnd;ld-TrtAEv}V%M!qzx^P97U+$H#T>bAwKk%;+Gk4+3^n@M^&h!o>R0I($kj_4fh=@o+77-~t(q|D-P>YC?sNhj} zENl^pCc1%oh@Kc=4XlO1b@W(;FdZ_+IXyz7nOGy%*hm~a4o`$=dWcyF3~tJs!L^6U z5RyO=k&-0gbz~^H&aTnfnL~f1?USHe-%{j zdqhftn7r{1FgXH+1-y;$0I8rp$Uvod9V&&*)bK4pTWWgAMJ7{>AVaCkC<&r1HfbPJ z?3!!od55c4#BD?55p|QPJoNq9>4FA3nQqq%`4bwtiG!E^XQtAWoibad-(Taj3{me@7xT9v`v}q^*G%DfAC_95>(nX zTlxsN5UWA<=P&m7C{$A;kyl-A>$BHWBsHqGSt>oT}ts=(_lruErh;x2W%onggPdc^lWbPFNKon$$^!XV3V z6}$`!yUE?;9(V=*!UJJiL>()kdE}cxuQLnVXohjVD+^m~NnuFlN^(Cha}`+)yWq8M z@&I`d-hkt@lkG2gWKFQVy=vDq|F?Jp&#w9UkTTcVI8gJtpyt=@8vlPwGv`imd3~N) zS5g<=5aITjbQ5}+v4QlEUb2B~B%9z(*bQ&N9(a2L*-W<3h}=q^hQ07Ejl}ohBmO+h zA;w(FwKj6TejZ5!Bfg~Y=FUc+vpGygBUzJObHfCOKhW1?()g@w^YU$?pN3{ZTfpNA zHiXsQ7N3LO%lSO5-T<8xiZEIf1>Lmwpo8sBdj2#gOA5z2-0hBF4d?M&xPcaO@_8P3 zUVwL?vm!Y?wCPs}B_cg^XRngi=&s&}eLdt2@+R30`{4ulkl&=Kq;O(ez~yuYZ*}^m z(l9P5r1s3da$jbCU*p}L4)=g{lby|hnIWz3lJ_F3=6>>l@PJ-Ad>K*hJ|Raag&_yX zL2`&3hL7PBH~5FCaha10Xb>ph;NJX&g3&U1Y7X)@J+A6|Ms{XKZgyi*SgRI?MSEFw2;`s)HN^Fn!x?M%U1H+*$PAax@u7#*JK!)Az35lJCfGqU*+@-Y!rRZI+a<> zY-bKK--+ZRqv$%(Fj2B7Rg^9oA<7cvi1I`?h{{Ceq6$%!s76#PsuxWWO%qKQHHzko zR*2S!_K8l4RpNMYig=`Wlz6nbLTnc|ikrnPVyAevc#(LS_+IgS;#K1N#p}fz#GAyM z#m|Vhi+75j6Tc-sB0efUB|a~{B)%+>OVkpRBtdeWWSAsbk|D{IWJ_`-1(I7Nb&~0l znUXn@J0&Y5YbEO?-I89(X30~MrzP7Ydn8{=E=iG;NJUbKR3=qORZ_E*mD;57(!tUp z(nRUC(oxbz=_=`V=^N4m(l4Z^rDvpHOV3L$NH5FeGL=j%)5`R+7}-!+mTaVKlx&Qw zP*x%vFDsQzlueRV$T*ot=9Mjwf$TQf9kM%RcgY@-JuG`fwnnx?_PT7hY>(_6*?Y2m zvSYGOWuMDV$xh48$iA0dlKoxwi|kj~Ww~6glB?xfxn3S4A1cq1=gRZtH_AuL3*@)R zC&?@2)$+;mI{6IwYi<#XlpwTKJ%=8Tj5ps6ahuMVyRXna( zr|44jC^jfwQXEj6Qv9sMN|Q2QS*EO0&QLm)vz2b8SLsu(QEpOhQEpXkQ|?ect9(hh zSNVbRBjqQ`gUS=i&y**XrQF6J zEmJL5-J@EeTB%yCdO-D%szer~)sD!97QKeBeQMFO^QB$I(MYTjZqh?37 zMtP#nCQajqUcG{mC@DFlcQ%v`=jSZ-x0kk zdTsRM(d(kSG%8JuW|$^TQ>>Y&nWtH#*`hh5`BHOU^ONRh%`ci?wTxD-RclRJi`J@* z(`IQ4wd1v=+KJjp+Dh#d?KJIlZKJkXJ45Tyc50VsAJcBu?$kb~eL?$@_7&|O?OyG> z+V{2lwI6CP>SVfMx*}bvu1r_1o2r|xYt(VN7M)YKK(}0XukJqGYTX06hji<7y}FIM zCv{tNFX~>^y{>yxw^#SB?tR^U-C^Bn-PgMFx(m9$>3+~%(*0fcyI!eR>7(?~daFKO zKUkljPtp(7r|Yxzx%zzlNPUUEOkb|A&`;La=^OM@^(}g@eu4fr{Sy6B{oVR|_4nyl z>3j5B^{?p<>c2He4RV9h5M_uq3^k-1at%d>7K7i=X6P_<8s-~T8de(~Fg#><#IVND zW7uNYYIw%5-LTW}hGDm1k72Ljpy9CLsNuNbtl^yD8^cAz?=i}lsF>&&ZOrvC!(&on z(qb}VZipEbGbW}mW_(Or%)FT1n5Sb7#T<|M-DolnG7d2&8m~2G8gDX|7{?n+jT4QN zjFrY}<78u<(PeZSy+)rgU~D(eHO@CKFfKAKHa=o}-uSWcbK@nG*fhwLZ<=J9W@<8V zrWTXSp6tLJN8SG4U7TdutWP!bnUBceY-pk&{u43{0eO`ziZ5dzL-Ne#2g5|H}T2{l&^yRn};$)~dG-vJSRhV@`*iKe3*$er7#sJ!L&@yyOr-tiRbLHoeVii?a=~ zU1LkICEHSM>9!HJEL)CkjO`ZNWLv#$ip_3w*qUr}Y)fpbY`wOPwkK^{Y+G&5*tXkt z+Mct$V0+)T-}a&HW7`4SA=?q#G202-XSS2JbG9GjlyRoGl(?~RwQ=6KyW$> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/Controls Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist b/Examples/Controls Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..673e367 --- /dev/null +++ b/Examples/Controls Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + SwipeViewExample.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 01FA7D20145B5FCC00D118DB + + primary + + + + + diff --git a/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout new file mode 100644 index 0000000..29768dd --- /dev/null +++ b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcshareddata/SwipeViewExample.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 9CFB8D13-FFE2-450A-9685-48CD60E86E22 + IDESourceControlProjectName + SwipeViewExample + IDESourceControlProjectOriginsDictionary + + C663044A1215EDAE9BFEE2935FD16744DA3876FB + github.com:praveenaj/SwipeView.git + + IDESourceControlProjectPath + Examples/Paging Example/SwipeViewExample.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + C663044A1215EDAE9BFEE2935FD16744DA3876FB + ../../../.. + + IDESourceControlProjectURL + github.com:praveenaj/SwipeView.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + C663044A1215EDAE9BFEE2935FD16744DA3876FB + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + C663044A1215EDAE9BFEE2935FD16744DA3876FB + IDESourceControlWCCName + SwipeView + + + + diff --git a/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/UserInterfaceState.xcuserstate b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..b3c0e43210d45ef77dac423eec0db83512d01f04 GIT binary patch literal 17161 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 literal 0 HcmV?d00001 diff --git a/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/WorkspaceSettings.xcsettings b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..659c876 --- /dev/null +++ b/Examples/Paging Example/SwipeViewExample.xcodeproj/project.xcworkspace/xcuserdata/praveenaj.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + + diff --git a/Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..fc6c20e --- /dev/null +++ b/Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist b/Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..3846b29 --- /dev/null +++ b/Examples/Paging Example/SwipeViewExample.xcodeproj/xcuserdata/praveenaj.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SuppressBuildableAutocreation + + 01308D8D13491C3500453707 + + primary + + + + + diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index 7970598..e05e46b 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -301,8 +301,10 @@ - (void)setPullToRefresh:(BOOL)pullToRefresh { _pullToRefresh = pullToRefresh; - _refreshControl = [[UIRefreshControl alloc] init]; - _refreshControl.tintColor = [UIColor grayColor]; + if(!_refreshControl){ + _refreshControl = [[UIRefreshControl alloc] init]; + _refreshControl.tintColor = [UIColor grayColor]; + } [_refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; [_scrollView addSubview:_refreshControl]; } From 5f8998a073cf8b2c3c549afad17e7e730c63f5ae Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Fri, 25 Sep 2015 16:28:25 +0530 Subject: [PATCH 6/8] removing refresh control bool --- SwipeView/SwipeView.h | 1 - SwipeView/SwipeView.m | 20 +++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/SwipeView/SwipeView.h b/SwipeView/SwipeView.h index 08bd26c..69b4dc1 100644 --- a/SwipeView/SwipeView.h +++ b/SwipeView/SwipeView.h @@ -85,7 +85,6 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) @property (nonatomic, readonly, getter = isScrolling) BOOL scrolling; @property (nonatomic, assign) BOOL defersItemViewLoading; @property (nonatomic, assign, getter = isVertical) BOOL vertical; -@property (nonatomic, assign) BOOL pullToRefresh; @property (nonatomic,strong) UIRefreshControl *refreshControl; - (void)reloadData; - (void)reloadItemAtIndex:(NSInteger)index; diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index e05e46b..64d6745 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -105,7 +105,6 @@ - (void)setUp _truncateFinalPage = NO; _defersItemViewLoading = NO; _vertical = NO; - _pullToRefresh = NO; _scrollView = [[UIScrollView alloc] init]; _scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; @@ -136,6 +135,8 @@ - (void)setUp [_scrollView addGestureRecognizer:tapGesture]; self.clipsToBounds = YES; + + _refreshControl = nil; //place scrollview at bottom of hierarchy [self insertSubview:_scrollView atIndex:0]; @@ -295,18 +296,19 @@ - (void)setVertical:(BOOL)vertical } } -- (void)setPullToRefresh:(BOOL)pullToRefresh +- (void)setRefreshControl:(UIRefreshControl*)refreshControl { - if (_pullToRefresh != pullToRefresh) + if (refreshControl) { - _pullToRefresh = pullToRefresh; - - if(!_refreshControl){ - _refreshControl = [[UIRefreshControl alloc] init]; - _refreshControl.tintColor = [UIColor grayColor]; - } + _refreshControl = refreshControl; [_refreshControl addTarget:self action:@selector(didPullToRefresh:) forControlEvents:UIControlEventValueChanged]; [_scrollView addSubview:_refreshControl]; + } else { + _refreshControl = nil; + [_refreshControl removeTarget:nil + action:NULL + forControlEvents:UIControlEventAllEvents]; + [_scrollView removeSubview:_refreshControl] } } From 0fedf4b8a09513c03082b9490dcd24f3dd4b3174 Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Sat, 12 Dec 2015 00:37:57 +0530 Subject: [PATCH 7/8] minor fix --- SwipeView/SwipeView.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index 64d6745..5e96a7d 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -308,7 +308,7 @@ - (void)setRefreshControl:(UIRefreshControl*)refreshControl [_refreshControl removeTarget:nil action:NULL forControlEvents:UIControlEventAllEvents]; - [_scrollView removeSubview:_refreshControl] + [_refreshControl removeFromSuperview]; } } From 06ea77455857fbd9bff6bdead29829f303d9f81b Mon Sep 17 00:00:00 2001 From: Praveena Sarathchandra Date: Sat, 12 Dec 2015 00:47:42 +0530 Subject: [PATCH 8/8] exposing scrolview to public --- SwipeView/SwipeView.h | 1 + SwipeView/SwipeView.m | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/SwipeView/SwipeView.h b/SwipeView/SwipeView.h index 69b4dc1..8f4aead 100644 --- a/SwipeView/SwipeView.h +++ b/SwipeView/SwipeView.h @@ -86,6 +86,7 @@ typedef NS_ENUM(NSUInteger, SwipeViewAlignment) @property (nonatomic, assign) BOOL defersItemViewLoading; @property (nonatomic, assign, getter = isVertical) BOOL vertical; @property (nonatomic,strong) UIRefreshControl *refreshControl; +@property (nonatomic, strong) UIScrollView *scrollView; - (void)reloadData; - (void)reloadItemAtIndex:(NSInteger)index; - (void)scrollByOffset:(CGFloat)offset duration:(NSTimeInterval)duration; diff --git a/SwipeView/SwipeView.m b/SwipeView/SwipeView.m index 5e96a7d..3749b94 100755 --- a/SwipeView/SwipeView.m +++ b/SwipeView/SwipeView.m @@ -70,7 +70,7 @@ - (void)swipeViewDidEndRefreshing:(__unused SwipeView *)swipeView {} @interface SwipeView () -@property (nonatomic, strong) UIScrollView *scrollView; + @property (nonatomic, strong) NSMutableDictionary *itemViews; @property (nonatomic, strong) NSMutableSet *itemViewPool; @property (nonatomic, assign) NSInteger previousItemIndex;