设置navigationBar的背景为透明,总结自苹果官方文档

来源:互联网 发布:Js补全http 编辑:程序博客网 时间:2024/06/05 02:28

先来明确一下系统的规则,也就是系统会自动帮我们做的事情。

规则一:
1、如果自定义了navigationBar背景图片,navigationBar.translucent属性会自定根据背景图片的平均透明度来设置。如果平均数小于1.0,系统将会自动设置 translucent = YES,如果alpha == 1.0,translucent = NO。
2、如果自定义了navigationBar.barTintColor 并且barTintColor的alpha < 1.0,navigationBar将会自动设置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背景

1 0
原创粉丝点击