• 作死遇到的坑--view向下偏移


    好大一个坑。--谈谈view偏移问题:

    先上张图,

    图中白色部分。上面的是从网上找的资源。将导航栏隐藏之后用collectionView加上去而实现的滑动标签功能。开始以为是代码中的问题。然后仔细推敲了一遍别人代码中的相关模块。发现过了一天并没有找到解决的地方。我一直以为是哪儿设置的属性。例如frame什么的。今天早上来了之后。有钻研了下。发现了几个没有看到过的属性。可疑。的确可疑。

    然后改了之后发现问题解决了。

    先提出这两个属性吧。

    sele.edgesForExtendedLayout 属性

    self.automaticallyAdjustsScrollViewInsets 属性 

    在IOS7以后viewController开始使用全屏布局的,而且是默认的行为通常涉及到布局就离不开这个属性edgesForExtendedlayout,   它是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,也就是说,如果即使视图中有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。因为一般为了不让tableview不延伸到navigationBar下面,属性设置为UIRectEdgeNone。

    那么此时发现导航栏变灰了,这样设置: self.navigationController,navigationbar.translucent = No;

    *NavigationBar的translucent属性:看下官方API文档。

    翻译过来大致是 :translucent默认属性是yes,如果navigationBar有自定义的背景图,那么当属性置为Yes,且放了一张不透明的图,那么效果是自动会把这个图弄成半透明;

    如果设置为No,放了一半透明的图:

    如果barstyle是UIBarStyleBlack,效果是半透明的图自动加上黑色背景。

    如果是UIBarStyleDefault,效果是半透明的图自动加上白色背景。

    如果设置了barTintColor,效果是半透明的图自动加上barTintColor的背景。

    IOS7 viewController新增属性automaticallyAdjustsScrollViewInsets,即是否根据按所在界面的navigationBar与tabbar的高度,自动调整scrollview的inset。

    即UITableView顶部有一个空白区域。

  • 相关阅读:
    pointer-like classes, 关于智能指针
    non-explicite-one-argumen-constructor
    车道标线分割与分类
    matlab变量更新
    matlab求余
    MATLAB中图像的读取与显示
    提取文件一部分内容
    NetCore3.1 使用 mongoDb 存储日志,提升查询效率
    C#代码实现阿里云消息服务MNS消息监听
    盘点这些年我出的书,以及由此得到的收获
  • 原文地址:https://www.cnblogs.com/wmx-rj/p/4876870.html
Copyright © 2020-2023  润新知