TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Dec 2014 |
Maintained by Unclaimed.
Custom UINavigationBar
subclass which allows gradient coloured navigation bar on iOS 6/7.
platform :ios
pod 'CRGradientNavigationBar'
...
Run pod install
to install the dependencies.
Import the header file wherever you want to use the gradient colored navigation bar:
#import "CRGradientNavigationBar.h"
initWithNavigationBarClass:toolbarClass:
method:UINavigationController *navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[CRGradientNavigationBar class] toolbarClass:nil];
NSArray
to set the gradient colors (You can set unlimited colors):UIColor *firstColor = [UIColor colorWithRed:255.0f/255.0f green:42.0f/255.0f blue:104.0f/255.0f alpha:1.0f];
UIColor *secondColor = [UIColor colorWithRed:255.0f/255.0f green:90.0f/255.0f blue:58.0f/255.0f alpha:1.0f];
NSArray *colors = [NSArray arrayWithObjects:firstColor, secondColor, nil];
setBarTintGradientColors:
method:[[CRGradientNavigationBar appearance] setBarTintGradientColors:colors];
setTranslucent:
method:[[navigationController navigationBar] setTranslucent:NO];
You can change the transparency default value (0.5f), just change this line in the CRGradientNavigationBar.m
file:
static CGFloat const kDefaultOpacity = 0.5f;
Full example:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
UINavigationController *navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[CRGradientNavigationBar class] toolbarClass:nil];
UIColor *firstColor = [UIColor colorWithRed:255.0f/255.0f green:42.0f/255.0f blue:104.0f/255.0f alpha:1.0f];
UIColor *secondColor = [UIColor colorWithRed:255.0f/255.0f green:90.0f/255.0f blue:58.0f/255.0f alpha:1.0f];
NSArray *colors = [NSArray arrayWithObjects:firstColor, secondColor, nil];
// or NSArray *colors = [NSArray arrayWithObjects:(id)UIColorFromRGB(0xf16149).CGColor, (id)UIColorFromRGB(0xf14959).CGColor, nil];
[[CRGradientNavigationBar appearance] setBarTintGradientColors:colors];
[[navigationController navigationBar] setTranslucent:NO]; // Remember, the default value is YES.
DemoViewController *viewController = [[DemoViewController alloc] init];
[navigationController setViewControllers:@[viewController]];
[self.window setRootViewController:navigationController];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
setBarTintColor:
method:[[CRGradientNavigationBar appearance] setBarTintColor:UIColorFromRGB(0xEE695D)];
Translucent demo 1:
Translucent demo 2:
CRGradientNavigationBar is released under the MIT license. See LICENSE.
Christian Roman
Website: http://chroman.me
Contact: [email protected]
Twitter: http://twitter.com/chroman