iOS自定义导航栏navigationBar的那些坑--总结自苹果官方文档
2016-06-16 15:41
585 查看
先来明确一下系统的规则,也就是系统会自动帮我们做的事情。
规则一:
如果自定义了navigationBar背景图片,navigationBar.translucent属性会自定根据背景图片的平均透明度来设置。如果平均数小于1.0,系统将会自动设置 translucent = YES,如果alpha == 1.0,translucent = NO。
规则二:
如果translucent = YES ,视图的坐标系会从(0,0)开始计算
如果translucent = NO ,视图的坐标系会从(0,64)开始计算
这也就是经常导致导航栏下方的视图发生位置错乱,偏移64个坐标的原因。
下面列举各种自定义导航栏背景图片的情况:
非自定义背景图片
translucent = NO && UIBarStyleBlack ———>>> 黑色背景
translucent = NO && UIBarStyleDefault ———>>> 白色背景
translucent = NO && UIBarStyleDefault && 自定义barTintColor ———>>> barTintColor背景
自定义背景图片
translucent = YES && 图片半透明 ———>>> 半透明背景
translucent = YES && 图片不透明 ———>>> 半透明背景
translucent = NO && 图片半透明 && UIBarStyleBlack ———>>> 不透明黑色背景
translucent = NO && 图片半透明 && UIBarStyleDefault ———>>> 不透明白色背景
translucent = NO && 图片半透明 && UIBarStyleDefault && 自定义barTintColor ———>>> 不透明barTintColor背景
规则一:
如果自定义了navigationBar背景图片,navigationBar.translucent属性会自定根据背景图片的平均透明度来设置。如果平均数小于1.0,系统将会自动设置 translucent = YES,如果alpha == 1.0,translucent = NO。
规则二:
如果translucent = YES ,视图的坐标系会从(0,0)开始计算
如果translucent = NO ,视图的坐标系会从(0,64)开始计算
这也就是经常导致导航栏下方的视图发生位置错乱,偏移64个坐标的原因。
下面列举各种自定义导航栏背景图片的情况:
非自定义背景图片
translucent = NO && UIBarStyleBlack ———>>> 黑色背景
translucent = NO && UIBarStyleDefault ———>>> 白色背景
translucent = NO && UIBarStyleDefault && 自定义barTintColor ———>>> barTintColor背景
自定义背景图片
translucent = YES && 图片半透明 ———>>> 半透明背景
translucent = YES && 图片不透明 ———>>> 半透明背景
translucent = NO && 图片半透明 && UIBarStyleBlack ———>>> 不透明黑色背景
translucent = NO && 图片半透明 && UIBarStyleDefault ———>>> 不透明白色背景
translucent = NO && 图片半透明 && UIBarStyleDefault && 自定义barTintColor ———>>> 不透明barTintColor背景
相关文章推荐
- iOS开发——时间格式类
- ios 10 新系统功能
- iOS storyboard创建Navigation Controller
- 正则表达式在iOS中的运用
- iOS 地图显示比例设置 (这里是当前的位置信息代理方法中实现)
- iOS程序内部跳发短信
- iOS开发中地图(MapKit)的使用
- iOS tintColor与backgroundColor的区别
- iOS Waxpatch项目(动态更新)
- iOS直播的技术分析与实现
- iOS Developer:真机测试
- iOS中明文加密方式之base64加密
- iOS中使用RSA加密
- iOS开发——锁屏监听
- iOS load和initialize的区别
- iOS 9 Spotlight搜索 OC版
- iOS和hybird移动端性能
- 好玩的debugDescription & runtime(debug模式下调试model)
- iOS 心得整理
- 让Xcode的控制台支持`po frame`的打印