关于automaticallyAdjustsScrollViewInsets和 edgesForExtendedLayout的理解
2017-09-01 15:43
573 查看
一.automaticallyAdjustsScrollViewInsets
automaticallyAdjustsScrollViewInsets是在iOS7.0以后,相对于ScrollView新增属性,默认为YES,系统会根据所在界面的astatus
bar, search bar, navigation bar, toolbar, or tab bar等自动调整ScrollView的内边距(inset)。
(1)self.automaticallyAdjustsScrollViewInsets = YES;
ScrollView的原点从(0,64)开始,即tableView的cell相对于tableView的根视图向下调整了一个navigation
bar的高度,而tableView的原点在左上角。ScrollView部分不会让导航栏遮盖。(视图里面存在唯一一个UIScrollView或其子类View该属性才会生效)
(2)self.automaticallyAdjustsScrollViewInsets
= NO;
ScrollView原点就是(0,0)开始,tableview
是从屏幕的最上边开始,也就是被导航栏 & 状态栏覆盖。
假如视图里面存在多个个UIScrollView或其子类View或者在设置自适应后下拉刷新不能正常工作时可尝试以下方法:
(3)ScrollView原点就是(0,64)开始self.automaticallyAdjustsScrollViewInsets = NO;//关掉自适应
self.edgesForExtendedLayout = UIRectEdgeNone;//自行设置
在IOS7之前,tableView的Frame的起始点是(0,
20),在IOS7之后,它的起始点变成了(0,0),这个时候如果为了让下拉刷新能正常工作,必须设置self.edgesForExtendedLayout = UIRectEdgeNone
(这种情况适用于容器建立在UINavigationController)
二.edgesForExtendedLayout
指定边缘要延伸的方向
(1)self.edgesForExtendedLayout=UIRectEdgeAll
四周边缘均延伸,就是说,如果即使视图中上navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域,即表示tableView可延伸到
navigationBar 下面,从顶部边缘(0,0)开始。
(2)self.edgesForExtendedLayout=UIRectEdgeNone
默认是self.edgesForExtendedLayout=UIRectEdgeNone;即tableView从(0,64)处开始。
三.automaticallyAdjustsScrollViewInset=YES和 edgesForExtendedLayout=UIRectEdgeNone的区别
automaticallyAdjustsScrollViewInset=YES,tableView在滑动时会经过导航栏和状态栏的底下,而 edgesForExtendedLayout=UIRectEdgeNone不会经过,所以一般在设置了edgesForExtendedLayout=UIRectEdgeNone后做如下处理:
self.navigationController.navigationBar.translucent = NO;
automaticallyAdjustsScrollViewInsets是在iOS7.0以后,相对于ScrollView新增属性,默认为YES,系统会根据所在界面的astatus
bar, search bar, navigation bar, toolbar, or tab bar等自动调整ScrollView的内边距(inset)。
(1)self.automaticallyAdjustsScrollViewInsets = YES;
ScrollView的原点从(0,64)开始,即tableView的cell相对于tableView的根视图向下调整了一个navigation
bar的高度,而tableView的原点在左上角。ScrollView部分不会让导航栏遮盖。(视图里面存在唯一一个UIScrollView或其子类View该属性才会生效)
(2)self.automaticallyAdjustsScrollViewInsets
= NO;
ScrollView原点就是(0,0)开始,tableview
是从屏幕的最上边开始,也就是被导航栏 & 状态栏覆盖。
假如视图里面存在多个个UIScrollView或其子类View或者在设置自适应后下拉刷新不能正常工作时可尝试以下方法:
(3)ScrollView原点就是(0,64)开始self.automaticallyAdjustsScrollViewInsets = NO;//关掉自适应
self.edgesForExtendedLayout = UIRectEdgeNone;//自行设置
在IOS7之前,tableView的Frame的起始点是(0,
20),在IOS7之后,它的起始点变成了(0,0),这个时候如果为了让下拉刷新能正常工作,必须设置self.edgesForExtendedLayout = UIRectEdgeNone
(这种情况适用于容器建立在UINavigationController)
二.edgesForExtendedLayout
指定边缘要延伸的方向
(1)self.edgesForExtendedLayout=UIRectEdgeAll
四周边缘均延伸,就是说,如果即使视图中上navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域,即表示tableView可延伸到
navigationBar 下面,从顶部边缘(0,0)开始。
(2)self.edgesForExtendedLayout=UIRectEdgeNone
默认是self.edgesForExtendedLayout=UIRectEdgeNone;即tableView从(0,64)处开始。
三.automaticallyAdjustsScrollViewInset=YES和 edgesForExtendedLayout=UIRectEdgeNone的区别
automaticallyAdjustsScrollViewInset=YES,tableView在滑动时会经过导航栏和状态栏的底下,而 edgesForExtendedLayout=UIRectEdgeNone不会经过,所以一般在设置了edgesForExtendedLayout=UIRectEdgeNone后做如下处理:
self.navigationController.navigationBar.translucent = NO;
相关文章推荐
- 关于edgesForExtendedLayout和automaticallyAdjustsScrollViewInsets
- 关于edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets、translucent
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets、、
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- 析edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets属性详解
- layoutSubviews、drawRect、edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- 记录一些易忘的属性(translucent,edgesForExtendedLayout,automaticallyAdjustsScrollViewInsets)
- automaticallyAdjustsScrollViewInsets 和edgesForExtendedLayoutse和translucent
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets属性详解 )——转载
- 与导航栏下控件的frame相关的edgesForExtendedLayout、translucent、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets等几个属性的详解
- Link - iOS Layout about "edgesForExtendedLayout" and "automaticallyAdjustsScrollViewInsets"
- edgesForExtendedLayout和automaticallyAdjustsScrollViewInsets
- edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets属性
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets、、
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- iOS7 edgesForExtendedLayout&automaticallyAdjustsScrollViewInsets