From 6b33643bb5b9d94aaa4d5080129d477d4e4742b6 Mon Sep 17 00:00:00 2001 From: Arvindh Sukumar Date: Sat, 27 Aug 2016 15:34:19 +0530 Subject: [PATCH 1/3] Added a switch for lazy loading --- .../xcschemes/MXPagerView-Swift.xcscheme | 91 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 22 +++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 15589 bytes .../Base.lproj/Main.storyboard | 4 +- .../xcschemes/Pods-MXPagerView-Swift.xcscheme | 80 +++++++++++++++ .../xcschemes/xcschememanagement.plist | 32 ++++++ MXPagerView/MXPagerView.h | 5 + MXPagerView/MXPagerView.m | 61 ++++++++++-- 8 files changed, 287 insertions(+), 8 deletions(-) create mode 100644 Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme create mode 100644 Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Example-Swift/MXPagerView-Swift.xcworkspace/xcuserdata/arvindhsukumar.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/Pods-MXPagerView-Swift.xcscheme create mode 100644 Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme new file mode 100644 index 0000000..6247792 --- /dev/null +++ b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..34ca387 --- /dev/null +++ b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + MXPagerView-Swift.xcscheme + + orderHint + 1 + + + SuppressBuildableAutocreation + + D03882F31BF0C704000F6400 + + primary + + + + + diff --git a/Example-Swift/MXPagerView-Swift.xcworkspace/xcuserdata/arvindhsukumar.xcuserdatad/UserInterfaceState.xcuserstate b/Example-Swift/MXPagerView-Swift.xcworkspace/xcuserdata/arvindhsukumar.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..ecbbf8d2910f72b7f7e03bb2f3612b172aa0b9fa GIT binary patch literal 15589 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 - + - + diff --git a/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/Pods-MXPagerView-Swift.xcscheme b/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/Pods-MXPagerView-Swift.xcscheme new file mode 100644 index 0000000..b87f136 --- /dev/null +++ b/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/Pods-MXPagerView-Swift.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist b/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4dd1082 --- /dev/null +++ b/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + MXPagerView.xcscheme_^#shared#^_ + + orderHint + 0 + + Pods-MXPagerView-Swift.xcscheme + + orderHint + 2 + + + SuppressBuildableAutocreation + + 1076019CFB4A5F07BF71E20281D7BA1F + + primary + + + D079D9AA985DDABC43ED482FC2FB3E00 + + primary + + + + + diff --git a/MXPagerView/MXPagerView.h b/MXPagerView/MXPagerView.h index c0a9f2b..cd6c204 100644 --- a/MXPagerView/MXPagerView.h +++ b/MXPagerView/MXPagerView.h @@ -199,6 +199,11 @@ typedef NS_ENUM(NSInteger, MXPagerViewTransitionStyle) { */ @property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled; +/** + Determine if pages should be lazily loaded + */ +@property(assign) BOOL shouldLazyLoad; + /** Reloads everything from scratch. redisplays pages. */ diff --git a/MXPagerView/MXPagerView.m b/MXPagerView/MXPagerView.m index 4f57100..bc4ce42 100644 --- a/MXPagerView/MXPagerView.m +++ b/MXPagerView/MXPagerView.m @@ -32,13 +32,47 @@ @interface MXPagerView () @property (nonatomic, strong) NSMutableDictionary *registration; @property (nonatomic, strong) NSMutableArray *reuseQueue; + @end @implementation MXPagerView { + CGFloat _index; NSInteger _count; } +- (instancetype)init +{ + self = [super init]; + if (self) { + [self commonInit]; + } + return self; +} + + +- (instancetype)initWithCoder:(NSCoder *)coder +{ + self = [super initWithCoder:coder]; + if (self) { + [self commonInit]; + } + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self commonInit]; + } + return self; +} + +- (void)commonInit { + self.shouldLazyLoad = YES; +} + - (void)layoutSubviews { if (_count <= 0) { [self reloadData]; @@ -77,10 +111,16 @@ - (void)reloadData { //Updates index and loads the current selected page if ( (_count = [self.dataSource numberOfPagesInPagerView:self]) > 0) { - if (_index >= _count) - _index = _count-1; + if (self.shouldLazyLoad) { + if (_index >= _count) + _index = _count-1; + + [self loadPageAtIndex:_index]; + } + else { + [self loadAllPages]; + } - [self loadPageAtIndex:_index]; [self setNeedsLayout]; } } @@ -220,7 +260,7 @@ - (void)willMovePageToIndex:(NSInteger)index { [self.delegate pagerView:self willMoveToPageAtIndex:index]; } - if ([self.delegate respondsToSelector:@selector(pagerView:willHidePage:)]) { + if ([self.delegate respondsToSelector:@selector(pagerView:willHidePage:)] && self.shouldLazyLoad) { UIView *page = [self pageAtIndex:_index]; [self.delegate pagerView:self willHidePage:page]; } @@ -234,7 +274,7 @@ - (void)willMovePageToIndex:(NSInteger)index { - (void)didMovePageToIndex:(NSInteger)index { if (index != _index) { - if ([self.delegate respondsToSelector:@selector(pagerView:didHidePage:)]) { + if ([self.delegate respondsToSelector:@selector(pagerView:didHidePage:)] && self.shouldLazyLoad) { UIView *page = [self pageAtIndex:_index]; [self.delegate pagerView:self didHidePage:page]; } @@ -291,13 +331,22 @@ - (void)loadPageAtIndex:(NSInteger)index { loadPage(index); //In case of slide behavior, its loads the neighbors as well. - if (self.transitionStyle == MXPagerViewTransitionStyleScroll) { + if (self.transitionStyle == MXPagerViewTransitionStyleScroll && self.shouldLazyLoad) { loadPage(index - 1); loadPage(index + 1); } } +- (void) loadAllPages { + for (int i = 0; i < _count; i++) { + [self loadPageAtIndex:i]; + } +} + - (void)unLoadHiddenPages { + if (!self.shouldLazyLoad) { + return; + } NSMutableArray *toUnLoad = [NSMutableArray array]; From 7c598d908b18362ea1a4de009ee5cc2577e4eb33 Mon Sep 17 00:00:00 2001 From: Arvindh Sukumar Date: Sat, 27 Aug 2016 15:34:19 +0530 Subject: [PATCH 2/3] Added a switch for lazy loading --- .../xcschemes/MXPagerView-Swift.xcscheme | 91 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 22 +++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 15589 bytes .../xcschemes/Pods-MXPagerView-Swift.xcscheme | 80 +++++++++++++++ .../xcschemes/xcschememanagement.plist | 32 ++++++ MXPagerView/MXPagerView.h | 5 + 6 files changed, 230 insertions(+) create mode 100644 Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme create mode 100644 Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Example-Swift/MXPagerView-Swift.xcworkspace/xcuserdata/arvindhsukumar.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/Pods-MXPagerView-Swift.xcscheme create mode 100644 Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme new file mode 100644 index 0000000..6247792 --- /dev/null +++ b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/MXPagerView-Swift.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..34ca387 --- /dev/null +++ b/Example-Swift/MXPagerView-Swift.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + MXPagerView-Swift.xcscheme + + orderHint + 1 + + + SuppressBuildableAutocreation + + D03882F31BF0C704000F6400 + + primary + + + + + diff --git a/Example-Swift/MXPagerView-Swift.xcworkspace/xcuserdata/arvindhsukumar.xcuserdatad/UserInterfaceState.xcuserstate b/Example-Swift/MXPagerView-Swift.xcworkspace/xcuserdata/arvindhsukumar.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..ecbbf8d2910f72b7f7e03bb2f3612b172aa0b9fa GIT binary patch literal 15589 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist b/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4dd1082 --- /dev/null +++ b/Example-Swift/Pods/Pods.xcodeproj/xcuserdata/arvindhsukumar.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + MXPagerView.xcscheme_^#shared#^_ + + orderHint + 0 + + Pods-MXPagerView-Swift.xcscheme + + orderHint + 2 + + + SuppressBuildableAutocreation + + 1076019CFB4A5F07BF71E20281D7BA1F + + primary + + + D079D9AA985DDABC43ED482FC2FB3E00 + + primary + + + + + diff --git a/MXPagerView/MXPagerView.h b/MXPagerView/MXPagerView.h index f3d59f6..5458456 100644 --- a/MXPagerView/MXPagerView.h +++ b/MXPagerView/MXPagerView.h @@ -155,6 +155,11 @@ typedef NS_ENUM(NSInteger, MXPagerViewTransitionStyle) { */ @property (nonatomic, readonly) CGFloat progress; +/** + Determine if pages should be lazily loaded + */ +@property(assign) BOOL shouldLazyLoad; + /** Reloads everything from scratch. redisplays pages. */ From fa8453973758ba08c957276cceb295482bed4a0f Mon Sep 17 00:00:00 2001 From: Arvindh Sukumar Date: Sun, 12 Nov 2017 17:11:38 +0530 Subject: [PATCH 3/3] Fixed merge issue --- MXPagerView/MXPagerView.h | 4 ---- MXPagerView/MXPagerView.m | 35 ++++------------------------------- 2 files changed, 4 insertions(+), 35 deletions(-) diff --git a/MXPagerView/MXPagerView.h b/MXPagerView/MXPagerView.h index a52937c..64ab135 100644 --- a/MXPagerView/MXPagerView.h +++ b/MXPagerView/MXPagerView.h @@ -160,10 +160,6 @@ typedef NS_ENUM(NSInteger, MXPagerViewTransitionStyle) { */ @property(assign) BOOL shouldLazyLoad; -/** - Determine if pages should be lazily loaded - */ -@property(assign) BOOL shouldLazyLoad; /** Reloads everything from scratch. redisplays pages. diff --git a/MXPagerView/MXPagerView.m b/MXPagerView/MXPagerView.m index fc05954..6ad23f0 100644 --- a/MXPagerView/MXPagerView.m +++ b/MXPagerView/MXPagerView.m @@ -239,42 +239,15 @@ - (void)willMovePageToIndex:(NSInteger)index { UIView *page = self.pages[@(index)]; [self.delegate pagerView:self willMoveToPage:page atIndex:index]; } - - if ([self.delegate respondsToSelector:@selector(pagerView:willHidePage:)] && self.shouldLazyLoad) { - UIView *page = [self pageAtIndex:_index]; - [self.delegate pagerView:self willHidePage:page]; - } - - if ([self.delegate respondsToSelector:@selector(pagerView:willShowPage:)]) { - UIView *page = [self pageAtIndex:index]; - [self.delegate pagerView:self willShowPage:page]; - } } - (void)didMovePageToIndex:(NSInteger)index { - if (index != _index) { - - if ([self.delegate respondsToSelector:@selector(pagerView:didHidePage:)] && self.shouldLazyLoad) { - UIView *page = [self pageAtIndex:_index]; - [self.delegate pagerView:self didHidePage:page]; - } - - _index = index; - - if ([self.delegate respondsToSelector:@selector(pagerView:didMoveToPageAtIndex:)]) { - [self.delegate pagerView:self didMoveToPageAtIndex:index]; - } - - if ([self.delegate respondsToSelector:@selector(pagerView:didShowPage:)]) { - UIView *page = [self pageAtIndex:index]; - [self.delegate pagerView:self didShowPage:page]; - } - - //The page did change, now unload hidden pages - [self unLoadHiddenPages]; + if ([self.delegate respondsToSelector:@selector(pagerView:didMoveToPage:atIndex:)]) { + UIView *page = self.pages[@(index)]; + [self.delegate pagerView:self didMoveToPage:page atIndex:index]; } - //The page did change, now unload hidden pages + //The page did change, now unload hidden pages [self unLoadHiddenPages]; }