From adfe9ac97becfe7291cd2981fe9e2d77a7743ee9 Mon Sep 17 00:00:00 2001 From: chengxianghe Date: Thu, 25 Apr 2019 19:17:04 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=BE=E7=BD=AEselectF?= =?UTF-8?q?ont=20bug;=E5=A2=9E=E5=8A=A0=E9=A6=96=E6=AC=A1=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=8A=A0=E8=BD=BDindex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复bug 增加首次默认加载index --- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ .../xcschemes/xcschememanagement.plist | 14 ++++++++++++++ .../PagerControllerDmeoController.m | 1 + .../TYPagerController/TYPagerViewLayout.h | 2 ++ .../TYPagerController/TYPagerViewLayout.m | 1 - .../TabPager/TYTabPagerBarLayout.m | 2 +- 6 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 TYPagerControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 TYPagerControllerDemo.xcodeproj/xcuserdata/cheng.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TYPagerControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TYPagerControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TYPagerControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TYPagerControllerDemo.xcodeproj/xcuserdata/cheng.xcuserdatad/xcschemes/xcschememanagement.plist b/TYPagerControllerDemo.xcodeproj/xcuserdata/cheng.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..dac984d --- /dev/null +++ b/TYPagerControllerDemo.xcodeproj/xcuserdata/cheng.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + TYPagerControllerDemo.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/TYPagerControllerDemo/PagerControllerDmeoController.m b/TYPagerControllerDemo/PagerControllerDmeoController.m index 76a96b1..f1f5b11 100644 --- a/TYPagerControllerDemo/PagerControllerDmeoController.m +++ b/TYPagerControllerDemo/PagerControllerDmeoController.m @@ -49,6 +49,7 @@ - (void)addTabPageBar { - (void)addPagerController { TYPagerController *pagerController = [[TYPagerController alloc]init]; + pagerController.layout.firstScrollToIndex = 1; pagerController.layout.prefetchItemCount = 1; //pagerController.layout.autoMemoryCache = NO; // 只有当scroll滚动动画停止时才加载pagerview,用于优化滚动时性能 diff --git a/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.h b/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.h index 06b9d70..6348a38 100644 --- a/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.h +++ b/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.h @@ -68,6 +68,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, weak, nullable) id dataSource; @property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, assign) NSInteger firstScrollToIndex;// default 0 + // strong,will control the delegate,don't set delegate on other place. @property (nonatomic, strong, readonly) UIScrollView *scrollView; // if viewcontroller's automaticallyAdjustsScrollViewInsets YES ,will cause frame problems, you can set YES, default YES diff --git a/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.m b/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.m index b716485..372fe46 100644 --- a/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.m +++ b/TYPagerControllerDemo/TYPagerController/TYPagerViewLayout.m @@ -93,7 +93,6 @@ @interface TYPagerViewLayout () { BOOL _scrollAnimated; BOOL _isTapScrollMoved; CGFloat _preOffsetX; - NSInteger _firstScrollToIndex; BOOL _didReloadData; BOOL _didLayoutSubViews; diff --git a/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBarLayout.m b/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBarLayout.m index d48b005..26fd66e 100644 --- a/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBarLayout.m +++ b/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBarLayout.m @@ -207,7 +207,7 @@ - (void)transitionFromCell:(UICollectionViewCell *)fr fromCell.transform = CGAffineTransformMakeScale(_selectFontScale, _selectFontScale); } if (toCell) { - toCell.titleLabel.font = _normalTextFont; + toCell.titleLabel.font = _selectedTextFont ? _selectedTextFont : _normalTextFont; toCell.titleLabel.textColor = _selectedTextColor ? _selectedTextColor : _normalTextColor; toCell.transform = CGAffineTransformIdentity; } From 13bfae6af4eb55ce0e7478e5807fdef703455a89 Mon Sep 17 00:00:00 2001 From: SoRQ Date: Mon, 27 May 2019 18:35:00 +0800 Subject: [PATCH 2/5] Update TYTabPagerBar.m MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改滑块颜色 --- TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m | 1 + 1 file changed, 1 insertion(+) diff --git a/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m b/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m index 5a7c9c6..cd08823 100644 --- a/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m +++ b/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m @@ -149,6 +149,7 @@ - (void)reloadData { [_delegate pagerTabBar:self configureLayout:self.layout]; } [self.layout layoutIfNeed]; + [_progressView setBackgroundColor:_layout.progressColor]; [_collectionView reloadData]; [self.layout adjustContentCellsCenterInBar]; [self.layout layoutSubViews]; From 3d5987c7a9a4141cbc8543a2170a3eca06981486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E7=A5=A5=E8=B4=BA?= Date: Wed, 19 Jun 2019 19:55:11 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=A1=A5=E5=85=85nullable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TYPagerControllerDemo/TYPagerController/TYPagerController.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TYPagerControllerDemo/TYPagerController/TYPagerController.h b/TYPagerControllerDemo/TYPagerController/TYPagerController.h index 380b980..6e7d598 100755 --- a/TYPagerControllerDemo/TYPagerController/TYPagerController.h +++ b/TYPagerControllerDemo/TYPagerController/TYPagerController.h @@ -22,7 +22,7 @@ NS_ASSUME_NONNULL_BEGIN 3.if controller will display,will call viewWillAppear. 4.you can register && dequeue controller, usage like tableView */ -- (UIViewController *)pagerController:(TYPagerController *)pagerController controllerForIndex:(NSInteger)index prefetching:(BOOL)prefetching; +- (UIViewController *_Nullable)pagerController:(TYPagerController *)pagerController controllerForIndex:(NSInteger)index prefetching:(BOOL)prefetching; @end @@ -78,7 +78,7 @@ NS_ASSUME_NONNULL_BEGIN // register && dequeue's usage like tableView - (void)registerClass:(Class)Class forControllerWithReuseIdentifier:(NSString *)identifier; - (void)registerNib:(UINib *)nib forControllerWithReuseIdentifier:(NSString *)identifier; -- (UIViewController *)dequeueReusableControllerWithReuseIdentifier:(NSString *)identifier forIndex:(NSInteger)index; +- (UIViewController *_Nullable)dequeueReusableControllerWithReuseIdentifier:(NSString *)identifier forIndex:(NSInteger)index; // scroll to index - (void)scrollToControllerAtIndex:(NSInteger)index animate:(BOOL)animate; From 143910bb857c13c23596fd2ae6b8b3a450730aae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E7=A5=A5=E8=B4=BA?= Date: Mon, 24 Jun 2019 19:25:54 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=BB=91=E5=8A=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=89=8B=E5=8A=BF=E5=86=B2=E7=AA=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ .../project.pbxproj | 7 ++++++ .../TYPagerController/TYPagerController.m | 3 ++- .../TabPager/TYPagerScrollView.h | 17 +++++++++++++ .../TabPager/TYPagerScrollView.m | 24 +++++++++++++++++++ 5 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.h create mode 100644 TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.m diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..836675d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +TYPagerControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/chengxianghe.xcuserdatad/UserInterfaceState.xcuserstate +TYPagerControllerDemo.xcodeproj/xcuserdata/chengxianghe.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TYPagerControllerDemo.xcodeproj/project.pbxproj b/TYPagerControllerDemo.xcodeproj/project.pbxproj index c0e88df..40cda24 100644 --- a/TYPagerControllerDemo.xcodeproj/project.pbxproj +++ b/TYPagerControllerDemo.xcodeproj/project.pbxproj @@ -28,6 +28,7 @@ B072EC0D1F1E37B100736A2E /* TYPagerView.m in Sources */ = {isa = PBXBuildFile; fileRef = B072EC041F1E37B100736A2E /* TYPagerView.m */; }; B072EC0E1F1E37B100736A2E /* TYPagerViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = B072EC061F1E37B100736A2E /* TYPagerViewLayout.m */; }; B082E5791F0E79830084C952 /* PagerViewDmeoController.m in Sources */ = {isa = PBXBuildFile; fileRef = B082E5781F0E79830084C952 /* PagerViewDmeoController.m */; }; + EBF0109522C0E8CE00C5AFD3 /* TYPagerScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = EBF0109422C0E8CE00C5AFD3 /* TYPagerScrollView.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -71,6 +72,8 @@ B072EC061F1E37B100736A2E /* TYPagerViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TYPagerViewLayout.m; sourceTree = ""; }; B082E5771F0E79830084C952 /* PagerViewDmeoController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PagerViewDmeoController.h; sourceTree = ""; }; B082E5781F0E79830084C952 /* PagerViewDmeoController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PagerViewDmeoController.m; sourceTree = ""; }; + EBF0109322C0E8CE00C5AFD3 /* TYPagerScrollView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TYPagerScrollView.h; sourceTree = ""; }; + EBF0109422C0E8CE00C5AFD3 /* TYPagerScrollView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TYPagerScrollView.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -156,6 +159,8 @@ B072EBF61F1E37B100736A2E /* TabPager */ = { isa = PBXGroup; children = ( + EBF0109322C0E8CE00C5AFD3 /* TYPagerScrollView.h */, + EBF0109422C0E8CE00C5AFD3 /* TYPagerScrollView.m */, B072EBFF1F1E37B100736A2E /* TYTabPagerView.h */, B072EC001F1E37B100736A2E /* TYTabPagerView.m */, B072EBFD1F1E37B100736A2E /* TYTabPagerController.h */, @@ -212,6 +217,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -248,6 +254,7 @@ 2B9C0F531F0E11E7009BC0BD /* ViewController.m in Sources */, B072EC071F1E37B100736A2E /* TYTabPagerBar.m in Sources */, B072EC0A1F1E37B100736A2E /* TYTabPagerController.m in Sources */, + EBF0109522C0E8CE00C5AFD3 /* TYPagerScrollView.m in Sources */, B072EC081F1E37B100736A2E /* TYTabPagerBarCell.m in Sources */, B0284FE11F1E595D00C733E6 /* TabPagerControllerDemoController.m in Sources */, B072EC0B1F1E37B100736A2E /* TYTabPagerView.m in Sources */, diff --git a/TYPagerControllerDemo/TYPagerController/TYPagerController.m b/TYPagerControllerDemo/TYPagerController/TYPagerController.m index fbc53ed..55b2095 100755 --- a/TYPagerControllerDemo/TYPagerController/TYPagerController.m +++ b/TYPagerControllerDemo/TYPagerController/TYPagerController.m @@ -7,6 +7,7 @@ // #import "TYPagerController.h" +#import "TYPagerScrollView.h" @interface TYPagerController () { // private @@ -34,7 +35,7 @@ @implementation TYPagerController - (TYPagerViewLayout *)layout { if (!_layout) { - UIScrollView *scrollView = [[UIScrollView alloc]init]; + TYPagerScrollView *scrollView = [[TYPagerScrollView alloc]init]; TYPagerViewLayout *layout = [[TYPagerViewLayout alloc]initWithScrollView:scrollView]; layout.dataSource = self; layout.delegate = self; diff --git a/TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.h b/TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.h new file mode 100644 index 0000000..47f3b5c --- /dev/null +++ b/TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.h @@ -0,0 +1,17 @@ +// +// TYPagerScrollView.h +// TYPagerControllerDemo +// +// Created by 程祥贺 on 2019/6/24. +// Copyright © 2019 tany. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface TYPagerScrollView : UIScrollView + +@end + +NS_ASSUME_NONNULL_END diff --git a/TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.m b/TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.m new file mode 100644 index 0000000..166f32a --- /dev/null +++ b/TYPagerControllerDemo/TYPagerController/TabPager/TYPagerScrollView.m @@ -0,0 +1,24 @@ +// +// TYPagerScrollView.m +// TYPagerControllerDemo +// +// Created by 程祥贺 on 2019/6/24. +// Copyright © 2019 tany. All rights reserved. +// + +#import "TYPagerScrollView.h" + +@implementation TYPagerScrollView + +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { + // 首先判断otherGestureRecognizer是不是系统pop手势 + if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) { + // 再判断系统手势的state是began还是fail,同时判断scrollView的位置是不是正好在最左边 + if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) { + return YES; + } + } + return NO; +} + +@end From ac9c6e567bd232094d5e0b82a521e22e23a446d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E7=A5=A5=E8=B4=BA?= Date: Tue, 6 Aug 2019 17:35:23 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20crash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TYPagerController/TabPager/TYTabPagerBar.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m b/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m index cd08823..8ac243f 100644 --- a/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m +++ b/TYPagerControllerDemo/TYPagerController/TabPager/TYTabPagerBar.m @@ -170,6 +170,10 @@ - (void)registerNib:(UINib *)nib forCellWithReuseIdentifier:(NSString *)identifi - (CGRect)cellFrameWithIndex:(NSInteger)index { + //偶尔会出现 index == -1 的情况 此处修复 + if (index < 0) { + return CGRectZero; + } if (index >= _countOfItems) { return CGRectZero; }