From 3be2370063e113a86a8f785db68a8940e283f640 Mon Sep 17 00:00:00 2001 From: caseyoneill Date: Sun, 28 Jul 2013 12:18:54 -0600 Subject: [PATCH] Creating feature branch that allows the vertical tab bar to have the option to show selected tab images instead of just the highlighted gradient. --- src/FSVerticalTabBar.m | 18 +++++++++++++++++- src/FSVerticalTabBarButton.h | 1 + src/FSVerticalTabBarButton.m | 12 ++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/FSVerticalTabBar.m b/src/FSVerticalTabBar.m index 1b325bf..fb95acf 100644 --- a/src/FSVerticalTabBar.m +++ b/src/FSVerticalTabBar.m @@ -170,7 +170,23 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N UITabBarItem *item = [self.items objectAtIndex:indexPath.row]; cell.textLabel.text = item.title; - cell.iconImage = item.image; + + //add non-selected image + if(item.image != nil) + { + cell.iconImage = item.image; + } else if(item.image == nil && item.finishedUnselectedImage != nil) + { + //sometimes users will define the tabBar image through [tabBar setFinishedSelectedImage: withFinishedUnselectedImage:] + cell.iconImage = item.finishedUnselectedImage; + } + + //see if there is a selected image to show + if(item.finishedSelectedImage != nil) + { + cell.iconSelectedImage = item.finishedSelectedImage; + } + return cell; } diff --git a/src/FSVerticalTabBarButton.h b/src/FSVerticalTabBarButton.h index 00b70e8..3d48833 100644 --- a/src/FSVerticalTabBarButton.h +++ b/src/FSVerticalTabBarButton.h @@ -14,6 +14,7 @@ @property (nonatomic, readwrite, assign) UIColor *selectedImageTintColor; @property (nonatomic, readwrite, strong) UIImage *iconImage; +@property (nonatomic, readwrite, strong) UIImage *iconSelectedImage; @end diff --git a/src/FSVerticalTabBarButton.m b/src/FSVerticalTabBarButton.m index 7994329..018fc22 100644 --- a/src/FSVerticalTabBarButton.m +++ b/src/FSVerticalTabBarButton.m @@ -14,6 +14,7 @@ @implementation FSVerticalTabBarButton @synthesize selectedImageTintColor = _selectedImageTintColor; @synthesize iconImage = _iconImage; +@synthesize iconSelectedImage = _iconSelectedImage; - (UIColor *)selectedImageTintColor @@ -53,8 +54,15 @@ - (void)drawRect:(CGRect)rect imageSize.width, imageSize.height); - // draw either a selection gradient/glow or a regular image - if (self.isSelected) + // draw a selection gradient/glow, the selected image, or a regular image + if (self.isSelected && self.iconSelectedImage != nil) + { + //item is selected and we have a selected image to show + CGContextDrawImage(context, + imageRect, + self.iconSelectedImage.CGImage); + + } else if (self.isSelected) { // setup shadow CGSize shadowOffset = CGSizeMake(0.0f, 1.0f);