On ios7, a lot of apps (Apple Messages, Facebook Messenger, Calendar)have views appearing under the UINavigationBar, often with what seems to be standard animation. As it se
You should follow this simple approach.
Add a UIToolBar
like this.
UIBarButtonItem *flexiableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];
NSArray *items = [NSArray arrayWithObjects:item1, flexiableItem, item2, nil];
self.toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, -44, self.view.frame.size.width, 44)];
[self.toolBar setItems:items];
self.toolBar.tintColor = [UIColor whiteColor];
self.toolBar.barTintColor = [UIColor colorWithRed:0.6 green:0.1 blue:0.2 alpha:1];
[self.contentView addSubview:self.toolBar];
Add a Menu Button on Top navigation item
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(toggleMenu:)];
Now Implement toggleMenu
function. Add a BOOL
variable to track the movement.
if(!moved) {
[UIView animateWithDuration:0.5 animations:^{
self.toolBar.alpha = 1;
self.toolBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
}];
moved = YES;
}else {
[UIView animateWithDuration:0.5 animations:^{
self.toolBar.alpha = 1;
self.toolBar.frame = CGRectMake(0, -44, self.view.frame.size.width, 44);
}];
moved = NO;
}
Here is the attached video for this.
Hope that helps.