屏幕适配1(edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、translucent、automaticallyAdjustsScrollViewInsets)

  从iOS7开始,苹果开始提倡全屏布局,即默认情况下控制器的根View的大小等于屏幕的大小,即使存在navigationBar+tabBar,View的大小不变等于屏幕的大小,这样导致的结果就是navigationBar和tabBar会将View的顶部和底部的区域覆盖掉。如下图结果

当前根view顶部区域被导航栏覆盖掉了。

  为了避免上出现被覆盖的情况,需要修改edgesForExtendedLayout属性。

edgesForExtendedLayout是一个枚举类型。

typedef enum : NSUInteger {
   UIRectEdgeNone   = 0,
   UIRectEdgeTop    = 1 << 0,
   UIRectEdgeLeft   = 1 << 1,
   UIRectEdgeBottom = 1 << 2,
   UIRectEdgeRight  = 1 << 3,
   UIRectEdgeAll = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom | UIRectEdgeRight 
} UIRectEdge;

self.view.edgesForExtendedLayout = UIRectEdgeTop; //表示view向上延伸到屏幕上边框。
self.view.edgesForExtendedLayout = UIRectEdgeAll; //表示view向四周延伸到屏幕的各个边框。
self.view.edgesForExtendedLayout = UIRectEdgeNone; //表示view不向四周延伸,保证不会被navigationbar和tabbar覆盖掉。

猜你喜欢

转载自www.cnblogs.com/Zp3sss/p/9108613.html
今日推荐