关于导航栏Translucent属性的问题与鬼魅的64高度下移问题

1.这个属性YES or NO 决定是否需要导航条/TabBar带有半透明效果
官方解释
UINavigationBar/UITabBar的translucent属性解释:默认为YES,可以通过设置NO来强制使用非透明背景,如果导航条使用自定义背景图片,那么默认情况该属性的值由图片的alpha(透明度)决定,如果alpha的透明度小于1.0值为YES。如果手动设置translucent为YES并且使用自定义不透明图片,那么会自动设置系统透明度(小于1.0)在这个图片上。如果手动设置translucent为NO并且使用自定义带透明度(透明度小于0)的图片,那么系统会展示这张背景图片,只不过这张图片会使用事先确定的barTintColor进行不透明处理,若barTintColor为空,则会使用UIBarStyleBlack(黑色)或者UIBarStyleDefault(白色)

这是由于苹果对滚动视图的特殊性进行处理:对于类ScrollView,系统默认默认控制器属性automaticallyAdjustsScrollViewInsets默认为YES。

请注意:iOS11开始,苹果摒弃了automaticallyAdjustsScrollViewInsets属性,改由contentInsetAdjustmentBehavior(枚举值)控制,下面会有详细的解释。

  • contentInsetAdjustmentBehavior定义及使用(适用于iOS11+,替代automaticallyAdjustsScrollViewInsets)

    如果只想单纯地设置导航条不偏移导航条+状态栏和Tabbar高度,不想看解释,可以直接使用该宏定义解决方法适配的问题(宏定义来源:http://www.jianshu.com/p/352f101d6df1):

    还有viewController的edgesForExtendedLayout属性,这样三个属性加frame的设置直接影响了view界面是否会下移64的高度
    1.UINavigationBar/UITabBar的translucent半透明属性
    2.viewController的edgesForExtendedLayout属性
    3.类ScrollView的automaticallyAdjustsScrollViewInsets属性(iOS1前)与contentInsetAdjustmentBehavior(iOS11之后出现的枚举值)这些个View :scrollView tableView collectionView webView
    4.frame的origin的y的值

学习文章地址

你可能感兴趣的:(关于导航栏Translucent属性的问题与鬼魅的64高度下移问题)