概述:
系统原生的navigationcontroller非常强大, 几乎所有的程序都基于系统的导航控制器做开发
它的navigationbar的有2种形态
navigationbar的frame其实是CGRectMake(0, 20, 设备宽度, 44)
self.navigationBar.layer.masksToBounds = YES;
,-setMasksToBounds:方法告诉layer将位于它之下的layer都遮盖住。这是必须的,这样会使圆角不被遮,但是这样会导致阴影效果没有,很多网上都给出资料,再添加一个SubLayer,添加阴影。(意思也就是讲mask作为bound的边界,对原来的frame进行裁剪??)
navigationbar的frame就会变成是CGRectMake(0, 20, 设备宽度, 44)
1.translucent = YES
2.1.translucent = NO
一. translucent = YES的情况
scrollview会自动设置insets,
并且导航是半透明的,
self.view的起点是(64, 0)
设置一张透明图片, 并且设置UIBarMetricsCompact参数, 就可以让导航看起来是透明的
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"bigShadow.png"] forBarMetrics:UIBarMetricsCompact];
一. translucent = NO的情况
scrollview不会做任何适配
并且导航是不透明的,
self.view的起点是(0, 0)
时间: 2024-12-25 19:17:43