2.开始添加UINavigationBar。
在做这一步的时候遇到一些问题,困扰了我很久。其实就是我添加了UINavigationBar之后也显示出来了,可是他会遮住tabview 的一部分,我也知道原因,是区域问题,但是由于刚开始做还不会,所以找了很多。
下面贴代码
//解决问题的关键就下面的这段代码
UIView *headerView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 320, 44)]
self.tableView.tableHeaderView = headerView
[headerView release]
//加了上面的代码之后tabview就向下移了44个像素,那刚好放上navbar
CGRect aScreenRect = [[UIScreen mainScreen] bounds]
//创建navbar
UINavigationBar *nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, aScreenRect.size.width, 44)]
//创建navbaritem
UINavigationItem *NavTitle = [[UINavigationItem alloc] initWithTitle:@"详细介绍"]
[nav pushNavigationItem:NavTitle animated:YES]
[self.view addSubview:nav]
//创建barbutton 创建系统样式的
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(navBackBt:)]
//设置barbutton
NavTitle.leftBarButtonItem = item
[nav setItems:[NSArray arrayWithObject:NavTitle]]
[item release]
[NavTitle release]
[nav release]
这样就OK了
1.设置导航栏为不透明
2.设置导航栏为半透明 [系统默认就是半透明的]
注意:iOS 导航栏如果设置为半透明,则其透明度为90%.也就是说,如果设置 self.navigationController.navigationBar.barTintColor =[UIColor colorWithRed:1 green:0 blue:0 alpha:1],真正显示到界面上的颜色是有90%透明的
3.设置导航栏的背景颜色不会影响半透明 translucent 这个属性
4.隐藏导航栏
只要隐藏了导航栏后,不管 translucent 这个属性的值是ture或者false都会是下图效果
结果说明
如果设置了导航栏的 translucent = YES 这时在添加子视图的坐标原点相对屏幕坐标是(0,0).如果设置了 translucent = NO 这时添加子视图的坐标原点相对屏幕坐标就是(0, 64).
这里的xib是一个控制器所对应的view,使用导航控制器push到这个控制器的时候,得到以下两种情况.
1.导航栏半透明
2.导航栏不透明
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)