From c9e8e5cc32216c274f744b5191fb10fee6643847 Mon Sep 17 00:00:00 2001 From: Miguel Saiz Date: Mon, 19 Jan 2015 09:56:11 -0400 Subject: [PATCH 01/12] Can now lower the tab bar location through the ViewpagerOptions --- ICViewPager/ICViewPager/ViewPagerController.h | 4 +- ICViewPager/ICViewPager/ViewPagerController.m | 47 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/ICViewPager/ICViewPager/ViewPagerController.h b/ICViewPager/ICViewPager/ViewPagerController.h index 6652bfd..bc1fc83 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.h +++ b/ICViewPager/ICViewPager/ViewPagerController.h @@ -28,7 +28,9 @@ typedef NS_ENUM(NSUInteger, ViewPagerOption) { ViewPagerOptionStartFromSecondTab, ViewPagerOptionCenterCurrentTab, ViewPagerOptionFixFormerTabsPositions, - ViewPagerOptionFixLatterTabsPositions + ViewPagerOptionFixLatterTabsPositions, + ViewPagerOptionRelativeTitleSizes, + ViewPagerOptionLowerTabBar }; /** diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 14c21df..6ffbb86 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -21,6 +21,8 @@ #define kCenterCurrentTab 0.0 #define kFixFormerTabsPositions 0.0 #define kFixLatterTabsPositions 0.0 +#define kLowerTabLocation 0.0 +#define kRelativeTitle 0.0 #define kIndicatorColor [UIColor colorWithRed:178.0/255.0 green:203.0/255.0 blue:57.0/255.0 alpha:0.75] #define kTabsViewBackgroundColor [UIColor colorWithRed:234.0/255.0 green:234.0/255.0 blue:234.0/255.0 alpha:0.75] @@ -135,6 +137,8 @@ @interface ViewPagerController () Date: Mon, 19 Jan 2015 11:31:56 -0400 Subject: [PATCH 02/12] Can now use the views to calculate the tabs width --- ICViewPager/Controller/HostViewController.m | 26 +++++---- ICViewPager/ICViewPager/ViewPagerController.h | 9 ++- ICViewPager/ICViewPager/ViewPagerController.m | 57 +++++++++++++++++-- .../AppIcon.appiconset/Contents.json | 5 ++ 4 files changed, 79 insertions(+), 18 deletions(-) diff --git a/ICViewPager/Controller/HostViewController.m b/ICViewPager/Controller/HostViewController.m index b113549..ade548f 100644 --- a/ICViewPager/Controller/HostViewController.m +++ b/ICViewPager/Controller/HostViewController.m @@ -12,6 +12,7 @@ @interface HostViewController () @property (nonatomic) NSUInteger numberOfTabs; +@property (strong, nonatomic) NSArray* tabTitles; @end @@ -25,20 +26,13 @@ - (void)viewDidLoad { self.delegate = self; self.title = @"View Pager"; + self.tabTitles = @[@"DESTACADOS", @"ARTE & CULTURA",@"COMIDA",@"CINE", @"MUSICA", @"TEATRO", @"DEPORTE", @"HAPPY HOURS"]; // Keeps tab bar below navigation bar on iOS 7.0+ // if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { // self.edgesForExtendedLayout = UIRectEdgeNone; // } - self.navigationItem.rightBarButtonItem = ({ - - UIBarButtonItem *button; - button = [[UIBarButtonItem alloc] initWithTitle:@"Tab #5" style:UIBarButtonItemStylePlain target:self action:@selector(selectTabWithNumberFive)]; - - button; - }); - } - (void)viewDidAppear:(BOOL)animated { @@ -58,6 +52,7 @@ - (void)setNumberOfTabs:(NSUInteger)numberOfTabs { // Set numberOfTabs _numberOfTabs = numberOfTabs; + _numberOfTabs = self.tabTitles.count; // Reload data [self reloadData]; @@ -88,13 +83,16 @@ - (UIView *)viewPager:(ViewPagerController *)viewPager viewForTabAtIndex:(NSUInt UILabel *label = [UILabel new]; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont systemFontOfSize:12.0]; - label.text = [NSString stringWithFormat:@"Tab #%i", index]; + label.text = [NSString stringWithFormat:self.tabTitles[index]]; label.textAlignment = NSTextAlignmentCenter; label.textColor = [UIColor blackColor]; [label sizeToFit]; return label; } +-(NSArray*) viewPagerTabs { + return self.tabTitles; +} - (UIViewController *)viewPager:(ViewPagerController *)viewPager contentViewControllerForTabAtIndex:(NSUInteger)index { @@ -114,7 +112,7 @@ - (CGFloat)viewPager:(ViewPagerController *)viewPager valueForOption:(ViewPagerO case ViewPagerOptionCenterCurrentTab: return 1.0; case ViewPagerOptionTabLocation: - return 0.0; + return 1.0; case ViewPagerOptionTabHeight: return 49.0; case ViewPagerOptionTabOffset: @@ -122,9 +120,15 @@ - (CGFloat)viewPager:(ViewPagerController *)viewPager valueForOption:(ViewPagerO case ViewPagerOptionTabWidth: return UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ? 128.0 : 96.0; case ViewPagerOptionFixFormerTabsPositions: - return 1.0; + return 0.0; case ViewPagerOptionFixLatterTabsPositions: + return 0.0; + case ViewPagerOptionLowerTabBar: + return 100.0; + case ViewPagerOptionRelativeTitleSizes: return 1.0; + case ViewPagerOptionRelativeTitlePadding: + return 15.0; default: return value; } diff --git a/ICViewPager/ICViewPager/ViewPagerController.h b/ICViewPager/ICViewPager/ViewPagerController.h index bc1fc83..5282152 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.h +++ b/ICViewPager/ICViewPager/ViewPagerController.h @@ -19,6 +19,10 @@ * ViewPagerOptionCenterCurrentTab: 1.0: YES, 0.0: NO, defines if tabs should be centered, with the given tabWidth. Defaults to NO * ViewPagerOptionFixFormerTabsPositions: 1.0: YES, 0.0: NO, defines if the active tab should be placed margined by the offset amount to the left. Effects only the former tabs. If set 1.0 (YES), first tab will be placed at the same position with the second one, leaving space before itself. Defaults to NO * ViewPagerOptionFixLatterTabsPositions: 1.0: YES, 0.0: NO, like ViewPagerOptionFixFormerTabsPositions, but effects the latter tabs, making them leave space after themselves. Defaults to NO + + * ViewPagerOptionRelativeTitleSizes: 1.0: YES, 0.0: NO, if YES will calculate the tab width based on the view's width. Defaults to NO + * ViewPagerOptionRelativeTitlePadding: The spacing between tabs, defaults to 15.0. This will only have an effect if ViewPagerOptionRelativeTitleSizes is YES + * ViewPagerOptionLowerTabBar: Lowers the tabs n the view controller by the amount. Defaults to 0.0 which makesthe tabs be on top or on bottom depending on ViewPagerOptionTabLocation. Accepts negative values to raise the tabs. */ typedef NS_ENUM(NSUInteger, ViewPagerOption) { ViewPagerOptionTabHeight, @@ -30,7 +34,9 @@ typedef NS_ENUM(NSUInteger, ViewPagerOption) { ViewPagerOptionFixFormerTabsPositions, ViewPagerOptionFixLatterTabsPositions, ViewPagerOptionRelativeTitleSizes, - ViewPagerOptionLowerTabBar + ViewPagerOptionRelativeTitlePadding, + ViewPagerOptionLowerTabBar, + }; /** @@ -156,7 +162,6 @@ typedef NS_ENUM(NSUInteger, ViewPagerComponent) { * @return A view which will be shown as content */ - (UIView *)viewPager:(ViewPagerController *)viewPager contentViewForTabAtIndex:(NSUInteger)index; - @end #pragma mark delegate diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 6ffbb86..2231b5b 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -23,6 +23,7 @@ #define kFixLatterTabsPositions 0.0 #define kLowerTabLocation 0.0 #define kRelativeTitle 0.0 +#define kRelativeTitlePadding 10.0 #define kIndicatorColor [UIColor colorWithRed:178.0/255.0 green:203.0/255.0 blue:57.0/255.0 alpha:0.75] #define kTabsViewBackgroundColor [UIColor colorWithRed:234.0/255.0 green:234.0/255.0 blue:234.0/255.0 alpha:0.75] @@ -139,6 +140,7 @@ @interface ViewPagerController () =0?relativeTitlePadding:[NSNumber numberWithFloat:kRelativeTitlePadding]; +} - (void)setActiveTabIndex:(NSUInteger)activeTabIndex { @@ -589,6 +595,19 @@ - (NSNumber *)lowerTabLocation { return _lowerTabLocation; } +- (NSNumber*)relativeTitlePadding { + if (!_relativeTitlePadding) { + CGFloat value = kRelativeTitlePadding; + if ([self.delegate respondsToSelector:@selector(viewPager:valueForOption:withDefault:)]) + value = [self.delegate viewPager:self valueForOption:ViewPagerOptionRelativeTitlePadding withDefault:value]; + _relativeTitlePadding = [NSNumber numberWithFloat:value]; + } + _relativeTitlePadding = _relativeTitlePadding>=0?_relativeTitlePadding:[NSNumber numberWithFloat:kRelativeTitlePadding]; + + return _relativeTitlePadding; +} + + #pragma mark - Public methods - (void)reloadData { @@ -763,6 +782,8 @@ - (CGFloat)valueForOption:(ViewPagerOption)option { return [[self centerCurrentTab] floatValue]; case ViewPagerOptionRelativeTitleSizes: return [[self relativeTitleSizes] floatValue]; + case ViewPagerOptionRelativeTitlePadding: + return [[self relativeTitlePadding] floatValue]; case ViewPagerOptionLowerTabBar: return [[self lowerTabLocation] floatValue]; default: @@ -859,13 +880,34 @@ - (void)defaultSetup { } } +#warning Working here +// NSArray* titles = nil; +// UILabel* tempLabel = nil; +// if (self.relativeTitleSizes) { +// if (self.relativeTitleSizes && [self.dataSource respondsToSelector:@selector(viewPagerTabs)]){ +// titles = [self.dataSource viewPagerTabs]; +// tempLabel = [[UILabel alloc] init]; +// } +// } for (NSUInteger i = 0; i < self.tabCount; i++) { UIView *tabView = [self tabViewAtIndex:i]; CGRect frame = tabView.frame; frame.origin.x = contentSizeWidth; - frame.size.width = [self.tabWidth floatValue]; + + CGFloat tabWidth = [self.tabWidth floatValue]; + //Set the tab's frame + if (self.relativeTitleSizes){ + tabWidth = [self tabViewAtIndex:i].frame.size.width;//[self.dataSource viewPager:self viewForTabAtIndex:i].frame.size.width; + NSLog(@"%d - %f",i, tabWidth); +// tempLabel.text = titles[i]; +// [tempLabel sizeToFit]; +// tabWidth = ceil(tempLabel.frame.size.width); + } + + frame.size.width = tabWidth; + tabView.frame = frame; [self.tabsView addSubview:tabView]; @@ -876,6 +918,7 @@ - (void)defaultSetup { UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; [tabView addGestureRecognizer:tapGestureRecognizer]; } + NSLog(@"content size: %f", contentSizeWidth); // Extend contentSizeWidth if fixLatterTabsPositions is provided YES if ([self.fixLatterTabsPositions boolValue]) { @@ -908,9 +951,6 @@ - (void)defaultSetup { NSUInteger index = [self.startFromSecondTab boolValue] ? 1 : 0; [self selectTabAtIndex:index]; -#warning Experimental - self.relativeTitleSizes = [NSNumber numberWithFloat:kRelativeTitle]; - // Set setup done self.defaultSetupDone = YES; } @@ -928,7 +968,14 @@ - (TabView *)tabViewAtIndex:(NSUInteger)index { tabViewContent.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; // Create TabView and subview the content - TabView *tabView = [[TabView alloc] initWithFrame:CGRectMake(0.0, 0.0, [self.tabWidth floatValue], [self.tabHeight floatValue])]; + TabView *tabView = nil; + if (self.relativeTitleSizes){ +#warning Tab title frame + tabView = [[TabView alloc] initWithFrame:CGRectMake(0.0, 0.0, tabViewContent.frame.size.width+[self.relativeTitlePadding floatValue], [self.tabHeight floatValue])]; + }else { + tabView = [[TabView alloc] initWithFrame:CGRectMake(0.0, 0.0, [self.tabWidth floatValue], [self.tabHeight floatValue])]; + } + [tabView addSubview:tabViewContent]; [tabView setClipsToBounds:YES]; [tabView setIndicatorColor:self.indicatorColor]; diff --git a/ICViewPager/Images.xcassets/AppIcon.appiconset/Contents.json b/ICViewPager/Images.xcassets/AppIcon.appiconset/Contents.json index 8dc09c3..1806879 100644 --- a/ICViewPager/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ICViewPager/Images.xcassets/AppIcon.appiconset/Contents.json @@ -32,6 +32,11 @@ "filename" : "Icon.png", "scale" : "2x" }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, { "idiom" : "ipad", "size" : "29x29", From 7e2ff42a3c76402b27885e5a3705b4b9c5b22883 Mon Sep 17 00:00:00 2001 From: Miguel Saiz Date: Mon, 19 Jan 2015 11:39:48 -0400 Subject: [PATCH 03/12] Updated the example --- ICViewPager/Controller/HostViewController.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ICViewPager/Controller/HostViewController.m b/ICViewPager/Controller/HostViewController.m index ade548f..1ff4369 100644 --- a/ICViewPager/Controller/HostViewController.m +++ b/ICViewPager/Controller/HostViewController.m @@ -128,7 +128,7 @@ - (CGFloat)viewPager:(ViewPagerController *)viewPager valueForOption:(ViewPagerO case ViewPagerOptionRelativeTitleSizes: return 1.0; case ViewPagerOptionRelativeTitlePadding: - return 15.0; + return 20.0; default: return value; } From 905cef4e622f2b58a7effe1ddbd1a642eabe7a21 Mon Sep 17 00:00:00 2001 From: Oliver Bridgman Date: Wed, 10 Dec 2014 16:37:03 +1300 Subject: [PATCH 04/12] Fix crashes when tab on tab during scrolling tabview --- ICViewPager/ICViewPager/ViewPagerController.m | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 2231b5b..8b2d21a 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -148,7 +148,7 @@ @interface ViewPagerController () Date: Wed, 10 Dec 2014 16:41:34 +1300 Subject: [PATCH 05/12] Remove the borders --- ICViewPager/ICViewPager/ViewPagerController.m | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 8b2d21a..cf96c6c 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -84,22 +84,6 @@ - (void)drawRect:(CGRect)rect { UIBezierPath *bezierPath; - // Draw top line - bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(0.0, 0.0)]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetWidth(rect), 0.0)]; - [[UIColor colorWithWhite:197.0/255.0 alpha:0.75] setStroke]; - [bezierPath setLineWidth:1.0]; - [bezierPath stroke]; - - // Draw bottom line - bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint:CGPointMake(0.0, CGRectGetHeight(rect))]; - [bezierPath addLineToPoint:CGPointMake(CGRectGetWidth(rect), CGRectGetHeight(rect))]; - [[UIColor colorWithWhite:197.0/255.0 alpha:0.75] setStroke]; - [bezierPath setLineWidth:1.0]; - [bezierPath stroke]; - // Draw an indicator line if tab is selected if (self.selected) { From f68a2273ca448b7f76352481ed93aa3a84ff79ff Mon Sep 17 00:00:00 2001 From: Oliver Bridgman Date: Wed, 10 Dec 2014 16:44:22 +1300 Subject: [PATCH 06/12] Translucent Noooooooo (For ios7) --- ICViewPager/ICViewPager/ViewPagerController.m | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index cf96c6c..8b0c2f0 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -197,9 +197,11 @@ - (void)layoutSubviews { CGFloat topLayoutGuide = 0.0; if (IOS_VERSION_7) { - topLayoutGuide = 20.0; - if (self.navigationController && !self.navigationController.navigationBarHidden) { - topLayoutGuide += self.navigationController.navigationBar.frame.size.height; + if (self.navigationController.navigationBar.isTranslucent) { + topLayoutGuide = 20.0; + if (self.navigationController && !self.navigationController.navigationBarHidden) { + topLayoutGuide += self.navigationController.navigationBar.frame.size.height; + } } } From fd0f9ef07dea3f7f77bbeecc572a542002eef4fb Mon Sep 17 00:00:00 2001 From: Helmut Januschka Date: Tue, 10 Feb 2015 08:07:37 +0100 Subject: [PATCH 07/12] * tabbar bottom offset -> beyond the stroke --- ICViewPager/Controller/HostViewController.m | 5 +++- ICViewPager/ICViewPager/ViewPagerController.h | 1 + ICViewPager/ICViewPager/ViewPagerController.m | 27 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/ICViewPager/Controller/HostViewController.m b/ICViewPager/Controller/HostViewController.m index 1ff4369..1293a50 100644 --- a/ICViewPager/Controller/HostViewController.m +++ b/ICViewPager/Controller/HostViewController.m @@ -124,11 +124,14 @@ - (CGFloat)viewPager:(ViewPagerController *)viewPager valueForOption:(ViewPagerO case ViewPagerOptionFixLatterTabsPositions: return 0.0; case ViewPagerOptionLowerTabBar: - return 100.0; + return 0.0; case ViewPagerOptionRelativeTitleSizes: return 1.0; case ViewPagerOptionRelativeTitlePadding: return 20.0; + case ViewPagerOptionTaBarBottomPadding: + + return 0.0; default: return value; } diff --git a/ICViewPager/ICViewPager/ViewPagerController.h b/ICViewPager/ICViewPager/ViewPagerController.h index 5282152..bd2e09e 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.h +++ b/ICViewPager/ICViewPager/ViewPagerController.h @@ -36,6 +36,7 @@ typedef NS_ENUM(NSUInteger, ViewPagerOption) { ViewPagerOptionRelativeTitleSizes, ViewPagerOptionRelativeTitlePadding, ViewPagerOptionLowerTabBar, + ViewPagerOptionTaBarBottomPadding, }; diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 8b0c2f0..cb581e1 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -24,6 +24,8 @@ #define kLowerTabLocation 0.0 #define kRelativeTitle 0.0 #define kRelativeTitlePadding 10.0 +#define kTabBarBottomPadding 0.0 + #define kIndicatorColor [UIColor colorWithRed:178.0/255.0 green:203.0/255.0 blue:57.0/255.0 alpha:0.75] #define kTabsViewBackgroundColor [UIColor colorWithRed:234.0/255.0 green:234.0/255.0 blue:234.0/255.0 alpha:0.75] @@ -125,6 +127,7 @@ @interface ViewPagerController () Date: Thu, 19 Feb 2015 08:58:19 +0100 Subject: [PATCH 08/12] add option ViewPagerOptionScrollBounce to disable bouncing of tabbar and pagerview (e.g.: if we only have one page) --- ICViewPager/Controller/HostViewController.m | 4 ++ ICViewPager/ICViewPager/ViewPagerController.h | 1 + ICViewPager/ICViewPager/ViewPagerController.m | 56 ++++++++++++++----- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/ICViewPager/Controller/HostViewController.m b/ICViewPager/Controller/HostViewController.m index 1293a50..d00fca3 100644 --- a/ICViewPager/Controller/HostViewController.m +++ b/ICViewPager/Controller/HostViewController.m @@ -132,6 +132,10 @@ - (CGFloat)viewPager:(ViewPagerController *)viewPager valueForOption:(ViewPagerO case ViewPagerOptionTaBarBottomPadding: return 0.0; + case ViewPagerOptionScrollBounce: + + return UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ? 1 : 0; + default: return value; } diff --git a/ICViewPager/ICViewPager/ViewPagerController.h b/ICViewPager/ICViewPager/ViewPagerController.h index bd2e09e..9ed26ea 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.h +++ b/ICViewPager/ICViewPager/ViewPagerController.h @@ -37,6 +37,7 @@ typedef NS_ENUM(NSUInteger, ViewPagerOption) { ViewPagerOptionRelativeTitlePadding, ViewPagerOptionLowerTabBar, ViewPagerOptionTaBarBottomPadding, + ViewPagerOptionScrollBounce }; diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index cb581e1..3f2a75c 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -25,6 +25,7 @@ #define kRelativeTitle 0.0 #define kRelativeTitlePadding 10.0 #define kTabBarBottomPadding 0.0 +#define kScrollBounce 1.0 #define kIndicatorColor [UIColor colorWithRed:178.0/255.0 green:203.0/255.0 blue:57.0/255.0 alpha:0.75] @@ -128,6 +129,7 @@ @interface ViewPagerController () Date: Thu, 19 Feb 2015 09:15:03 +0100 Subject: [PATCH 09/12] add option to hide tabbar (e.g. if only one page) --- ICViewPager/Controller/HostViewController.m | 5 ++- ICViewPager/ICViewPager/ViewPagerController.h | 3 +- ICViewPager/ICViewPager/ViewPagerController.m | 41 ++++++++++++++++++- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/ICViewPager/Controller/HostViewController.m b/ICViewPager/Controller/HostViewController.m index d00fca3..fc76e3a 100644 --- a/ICViewPager/Controller/HostViewController.m +++ b/ICViewPager/Controller/HostViewController.m @@ -134,8 +134,9 @@ - (CGFloat)viewPager:(ViewPagerController *)viewPager valueForOption:(ViewPagerO return 0.0; case ViewPagerOptionScrollBounce: - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ? 1 : 0; - + return UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ? 1.0 : 0.0; + case ViewPagerOptionShowTabs: + return 1.0; default: return value; } diff --git a/ICViewPager/ICViewPager/ViewPagerController.h b/ICViewPager/ICViewPager/ViewPagerController.h index 9ed26ea..ded2e7e 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.h +++ b/ICViewPager/ICViewPager/ViewPagerController.h @@ -37,7 +37,8 @@ typedef NS_ENUM(NSUInteger, ViewPagerOption) { ViewPagerOptionRelativeTitlePadding, ViewPagerOptionLowerTabBar, ViewPagerOptionTaBarBottomPadding, - ViewPagerOptionScrollBounce + ViewPagerOptionScrollBounce, + ViewPagerOptionShowTabs }; diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 3f2a75c..5eb227e 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -26,6 +26,7 @@ #define kRelativeTitlePadding 10.0 #define kTabBarBottomPadding 0.0 #define kScrollBounce 1.0 +#define kShowTabs 1.0 #define kIndicatorColor [UIColor colorWithRed:178.0/255.0 green:203.0/255.0 blue:57.0/255.0 alpha:0.75] @@ -130,6 +131,7 @@ @interface ViewPagerController () Date: Fri, 27 Feb 2015 09:18:10 +0100 Subject: [PATCH 10/12] Update ContentViewController.h --- ICViewPager/Controller/ContentViewController.h | 1 + 1 file changed, 1 insertion(+) diff --git a/ICViewPager/Controller/ContentViewController.h b/ICViewPager/Controller/ContentViewController.h index f77a6c6..0684a6b 100644 --- a/ICViewPager/Controller/ContentViewController.h +++ b/ICViewPager/Controller/ContentViewController.h @@ -7,6 +7,7 @@ // #import +#define NSLog(__FORMAT__, ...) @interface ContentViewController : UIViewController From de8595ba0a6f6106a262fdd74ac7e1589eefdb63 Mon Sep 17 00:00:00 2001 From: Helmut Januschka Date: Fri, 27 Feb 2015 09:32:30 +0100 Subject: [PATCH 11/12] disable NSLog + fix warnings --- ICViewPager/Controller/HostViewController.m | 4 ++-- ICViewPager/ICViewPager/ViewPagerController.h | 1 + ICViewPager/ICViewPager/ViewPagerController.m | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ICViewPager/Controller/HostViewController.m b/ICViewPager/Controller/HostViewController.m index fc76e3a..ff226e6 100644 --- a/ICViewPager/Controller/HostViewController.m +++ b/ICViewPager/Controller/HostViewController.m @@ -83,7 +83,7 @@ - (UIView *)viewPager:(ViewPagerController *)viewPager viewForTabAtIndex:(NSUInt UILabel *label = [UILabel new]; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont systemFontOfSize:12.0]; - label.text = [NSString stringWithFormat:self.tabTitles[index]]; + label.text = [NSString stringWithFormat:@"%@", self.tabTitles[index]]; label.textAlignment = NSTextAlignmentCenter; label.textColor = [UIColor blackColor]; [label sizeToFit]; @@ -98,7 +98,7 @@ - (UIViewController *)viewPager:(ViewPagerController *)viewPager contentViewCont ContentViewController *cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"contentViewController"]; - cvc.labelString = [NSString stringWithFormat:@"Content View #%i", index]; + cvc.labelString = [NSString stringWithFormat:@"Content View #%lu", (unsigned long)index]; return cvc; } diff --git a/ICViewPager/ICViewPager/ViewPagerController.h b/ICViewPager/ICViewPager/ViewPagerController.h index ded2e7e..f7049e6 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.h +++ b/ICViewPager/ICViewPager/ViewPagerController.h @@ -7,6 +7,7 @@ // #import +#define NSLog(__FORMAT__, ...) /** * Every option has a default value. diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index 5eb227e..bf34892 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -1052,7 +1052,7 @@ - (TabView *)tabViewAtIndex:(NSUInteger)index { // Create TabView and subview the content TabView *tabView = nil; if (self.relativeTitleSizes){ -#warning Tab title frame + tabView = [[TabView alloc] initWithFrame:CGRectMake(0.0, 0.0, tabViewContent.frame.size.width+[self.relativeTitlePadding floatValue], [self.tabHeight floatValue])]; }else { tabView = [[TabView alloc] initWithFrame:CGRectMake(0.0, 0.0, [self.tabWidth floatValue], [self.tabHeight floatValue])]; From 81fa574ef55d9ae28f9d73028dfdba4b21aedb55 Mon Sep 17 00:00:00 2001 From: Helmut Januschka Date: Mon, 30 Mar 2015 09:18:04 +0200 Subject: [PATCH 12/12] fix view height if no tabbar --- ICViewPager/ICViewPager/ViewPagerController.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ICViewPager/ICViewPager/ViewPagerController.m b/ICViewPager/ICViewPager/ViewPagerController.m index bf34892..25c015e 100644 --- a/ICViewPager/ICViewPager/ViewPagerController.m +++ b/ICViewPager/ICViewPager/ViewPagerController.m @@ -241,9 +241,10 @@ - (void)layoutSubviews { if(![self.showTabs boolValue]) { frame.origin.y=topLayoutGuide; - frame.size.height=CGRectGetHeight(self.view.frame); + frame.size.height=CGRectGetHeight(self.view.frame)-kTabHeight-15; [self.tabsView setAlpha:0]; self.contentView.frame = frame; + } NSLog(@"BOUNCE: %@", self.scrollBounce);