在iOS7中在UINavigationBar下添加视图的最佳方法是什么

在ios7上,许多应用程序(Apple Messages,Facebook Messenger,Calendar)都会在UINavigationBar下显示视图,通常会显示标准动画.由于看起来非常标准并且使用UIToolBar看起来很多,我一直在寻找实现它的标准方法但却找不到任何东西.

有没有更好的方法将UIToolBar添加到UINavigationBar?

解决方法

你应该遵循这个简单的方法.

>像这样添加UIToolBar.

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];

>在顶部导航项目上添加菜单按钮

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(toggleMenu:)];

>现在实现toggleMenu功能.添加BOOL变量以跟踪移动.

if(!moved) {
[UIView animateWithDuration:0.5 animations:^{
    self.toolBar.alpha = 1;
    self.toolBar.frame = CGRectMake(0,44);
}];
moved = YES;
}else {
[UIView animateWithDuration:0.5 animations:^{
    self.toolBar.alpha = 1;
    self.toolBar.frame = CGRectMake(0,44);
}];
moved = NO;
}

>这是附加的video.

希望有所帮助.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...