美文网首页
iOS edgesForExtendedLayouts用到的适配

iOS edgesForExtendedLayouts用到的适配

作者: rainbowboy | 来源:发表于2019-03-27 17:56 被阅读0次

    iOS7以后,VC默认使用全屏布局,即view的origin.x是从屏幕的左上角开始计算的。在有navigationcontroller合uitabbarcontroller时,view也是默认占满整个屏幕的。

    edgesForExtendedLayout

    edgesForExtendedLayout的作用是,告知view是在整个屏幕哪个方向延展。默认值是:UIRectEdgeAll,向上下左右四个方向延展,也就是我们看到的效果。view占满这个屏幕。

    当我们把edgesForExtendedLayouts设置为UIRectEdgeNone时,view的布局就是从navigationbar下面开始布局,并且底部不会延展到UITabbar下面。

    automaticallyAdjustsScrollViewInsets

    在解释edgesForExtendedLayout属性时也需要解释下automaticallyAdjustsScrollViewInsets属性,默认为YES,该值表示是否自动调整滚动时图的contentInset属性,以适应状态栏,搜索栏,导航栏工具栏或者选项卡栏占居的屏幕区域。automaticallyAdjustsScrollViewInsets为yes时,scrollviewContentInset.top值会自动调整为64,这样scrollview里的内容就是在navigationbar下面布局了。

    translucent

    再解释个属性:translucent 导航栏是否为半透明的。默认是yes.
    当设置navitaioncontoller.navigationbar.translucent = NO 时,需要处理 extenedLayoutIncludesOpaquesBars属性。默认值是NO,
    self.view的布局是否包含设置为不透明之后的导航栏,以及tabBar,这是为yes时,依然会延伸到这些bar下面,占满整个屏幕,设置为NO时就会避免这些bar,不再延伸到它们下面。

    结构 edgesForExtendedLayout
    UIRectEdgeAll. 延展
    UIRectEdgeNone 不延展
    表格 automaticallyAdjustsScrollviewInsets navigationBar.translucent
    UIRectEdgeAll 默认yes,contentInset自适应bar内容。 no表示不自适应,就需要自己调整了 默认yes,表示半透明。会各种延展。为NO时,需要考虑extendedLayoutIncludesOpaquesBars,默认NO ,属性表示是否包含不透明的bar,NO 表示不包含,就不延展,yes表示包含,即时不透明也会延展到这些bar下面

    相关文章

      网友评论

          本文标题:iOS edgesForExtendedLayouts用到的适配

          本文链接:https://www.haomeiwen.com/subject/sqdtbqtx.html