From 5f8fc1c39d20e68bf891329b93706579eb07b903 Mon Sep 17 00:00:00 2001 From: Jimmy Lee Date: Thu, 27 Mar 2014 15:10:25 +1100 Subject: [PATCH 1/3] Fix floating table section headers when scrolling --- AAPullToRefresh.podspec | 4 ++-- AAPullToRefresh/AAPullToRefresh.m | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/AAPullToRefresh.podspec b/AAPullToRefresh.podspec index 2488c7b..51f30cd 100644 --- a/AAPullToRefresh.podspec +++ b/AAPullToRefresh.podspec @@ -1,8 +1,8 @@ Pod::Spec.new do |s| s.name = "AAPullToRefresh" - s.version = "1.0.2" + s.version = "1.0.3" s.summary = "All around pull to refresh library." - s.homepage = "https://github.com/r-plus/AAPullToRefresh/" + s.homepage = "https://github.com/justjimmy/AAPullToRefresh" s.license = 'MIT' s.author = { "r-plus" => "anasthasia.r@gmail.com" } s.source = { :git => "https://github.com/r-plus/AAPullToRefresh.git", :tag => s.version.to_s } diff --git a/AAPullToRefresh/AAPullToRefresh.m b/AAPullToRefresh/AAPullToRefresh.m index 01a3818..571f36c 100644 --- a/AAPullToRefresh/AAPullToRefresh.m +++ b/AAPullToRefresh/AAPullToRefresh.m @@ -363,8 +363,18 @@ - (void)scrollViewDidScroll:(CGPoint)contentOffset } break; case AAPullToRefreshStateStopped: // finish - case AAPullToRefreshStateLoading: // wait until stopIndicatorAnimation break; + case AAPullToRefreshStateLoading: + { + if (self.position == AAPullToRefreshPositionTop) { + CGFloat height = self.bounds.size.height + 20.0f; + CGFloat insetAdjustment = yOffset < 0 ? fmaxf(0, height + yOffset) : height; + UIEdgeInsets currentInsets = self.scrollView.contentInset; + currentInsets.top = height - insetAdjustment; + self.scrollView.contentInset = currentInsets; + } + break; + } default: break; } From 076ac149c7f64b39e1c034dc8f4ed51c3b86602a Mon Sep 17 00:00:00 2001 From: Jimmy Lee Date: Thu, 27 Mar 2014 16:23:41 +1100 Subject: [PATCH 2/3] reverse changes in podspec --- AAPullToRefresh.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AAPullToRefresh.podspec b/AAPullToRefresh.podspec index 51f30cd..2488c7b 100644 --- a/AAPullToRefresh.podspec +++ b/AAPullToRefresh.podspec @@ -1,8 +1,8 @@ Pod::Spec.new do |s| s.name = "AAPullToRefresh" - s.version = "1.0.3" + s.version = "1.0.2" s.summary = "All around pull to refresh library." - s.homepage = "https://github.com/justjimmy/AAPullToRefresh" + s.homepage = "https://github.com/r-plus/AAPullToRefresh/" s.license = 'MIT' s.author = { "r-plus" => "anasthasia.r@gmail.com" } s.source = { :git => "https://github.com/r-plus/AAPullToRefresh.git", :tag => s.version.to_s } From 3e615631abecff9b1450133bbeef595830a561f9 Mon Sep 17 00:00:00 2001 From: Jimmy Lee Date: Tue, 15 Apr 2014 14:15:11 +1000 Subject: [PATCH 3/3] add method - (AAPullToRefresh *)addPullToRefreshPosition:(AAPullToRefreshPosition)position image:(UIImage *)image actionHandler:(void (^)(AAPullToRefresh *v))handler --- AAPullToRefresh/AAPullToRefresh.h | 1 + AAPullToRefresh/AAPullToRefresh.m | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/AAPullToRefresh/AAPullToRefresh.h b/AAPullToRefresh/AAPullToRefresh.h index 8b89034..3eb0e80 100644 --- a/AAPullToRefresh/AAPullToRefresh.h +++ b/AAPullToRefresh/AAPullToRefresh.h @@ -37,4 +37,5 @@ typedef NS_ENUM(NSUInteger, AAPullToRefreshPosition) { @interface UIScrollView (AAPullToRefresh) - (AAPullToRefresh *)addPullToRefreshPosition:(AAPullToRefreshPosition)position actionHandler:(void (^)(AAPullToRefresh *v))handler; +- (AAPullToRefresh *)addPullToRefreshPosition:(AAPullToRefreshPosition)position image:(UIImage *)image actionHandler:(void (^)(AAPullToRefresh *v))handler; @end diff --git a/AAPullToRefresh/AAPullToRefresh.m b/AAPullToRefresh/AAPullToRefresh.m index 571f36c..002ca10 100644 --- a/AAPullToRefresh/AAPullToRefresh.m +++ b/AAPullToRefresh/AAPullToRefresh.m @@ -34,6 +34,37 @@ - (AAPullToRefresh *)addPullToRefreshPosition:(AAPullToRefreshPosition)position return view; } + +- (AAPullToRefresh *)addPullToRefreshPosition:(AAPullToRefreshPosition)position image:(UIImage *)image actionHandler:(void (^)(AAPullToRefresh *v))handler +{ + AAPullToRefresh *view = [[AAPullToRefresh alloc] initWithImage:image + position:position]; + switch (view.position) { + case AAPullToRefreshPositionTop: + case AAPullToRefreshPositionBottom: + view.frame = CGRectMake((self.bounds.size.width - view.bounds.size.width)/2, + -view.bounds.size.height, view.bounds.size.width, view.bounds.size.height); + break; + case AAPullToRefreshPositionLeft: + view.frame = CGRectMake(-view.bounds.size.width, self.bounds.size.height/2.0f, view.bounds.size.width, view.bounds.size.height); + break; + case AAPullToRefreshPositionRight: + view.frame = CGRectMake(self.bounds.size.width, self.bounds.size.height/2.0f, view.bounds.size.width, view.bounds.size.height); + break; + default: + break; + } + + view.pullToRefreshHandler = handler; + view.scrollView = self; + view.originalInsetTop = self.contentInset.top; + view.originalInsetBottom = self.contentInset.bottom; + view.showPullToRefresh = YES; + [self addSubview:view]; + + return view; +} + @end @interface AAPullToRefreshBackgroundLayer : CALayer