self.edgesForExtendedLayout=UIRectEdgeNone;

IOS7之后
self.edgesForExtendedLayout=UIRectEdgeNone;

self.automaticallyAdjustsScrollViewInsets=NO;

只要设置了 self.edgesForExtendedLayout ,UIRectEdgeAll的时候会让tableView从导航栏下移44px,设置为UIRectEdgeNone的时候,刚刚在导航栏下面。

self.edgesForExtendedLayout=UIRectEdgeNone or UIRectEdgeAll;
self.automaticallyAdjustsScrollViewInsets=YES;

的时候只要automaticallyAdjustsScrollViewInsets设置了YES,不管其他任何值tableView都会在导航栏下面,
手动改self.tableView.contentInset=UIEdgeInsetsMake(164, 0, 0, 0);也不影响tableView在导航栏下面。

时间: 2024-11-07 19:32:26

self.edgesForExtendedLayout=UIRectEdgeNone;的相关文章

[IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets、、

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

UIViewController的edgesForExtendedLayout属性

UIViewController的edgesForExtendedLayout属性 想必大家都遇到一种情况,明明y坐标设置的是0,但是总是被讨厌的导航栏给遮住.比如下面这个情况: UILabel *label = [[UILabel alloc] init]; label.frame = CGRectMake(10, 0, SCREEN.width - 20, 88); label.backgroundColor = [UIColor redColor]; label.text = @"关注公众

edgesForExtendedLayout

今天在做UISearchBar,UISearchDisplayController时遇到了一个问题,在点击搜索栏时阴影部分的位置出现偏差 如下图: 始终觉得很奇怪,后面单独做了一个demo,将同样的代码拷过去发现显示正常的. 然后再逐一查看代码看到如下: [objc] view plaincopyprint? - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.

【iOS】edgesForExtendedLayout

在 iOS 7.0 中,苹果引入了一个新的属性,叫做 edgesForExtendedLayou,它的默认值为 UIRectEdgeAll. 当你的容器是 navigationController 时,默认的布局将从 navigation bar 的顶部开始.这就是为什么所有的 UI 元素都往上漂移了44pt. 修复这个问题的快速方法就是在方法 viewDidLoad 中添加如下一行代码: self.edgesForExtendedLayout = UIRectEdgeNone; 这样问题就修复

iOS edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets属性详解

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

使用edgesForExtendedLayout遇到的麻烦

今天在写一个多界面之间来回返回的工程时,遇到的问题,建了两个类:FirstViewController 和 ButtonViewController. 由 FirstViewController 进入 ButtonViewController,我在 FirstViewController.m 和 ButtonViewController.m 中分别使用: self.navigationController.navigationBarHidden = YES; // 隐藏导航栏 FirstView

[IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets

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

edgesForExtendedLayout和automaticallyAdjustsScrollViewInsets属性

想必大家都遇到这种情况,设置的y坐标明明为0,但显示的内容还是被导航栏遮住一部分,比如一个简单的tableview,如下图: 大家可以看到第0行和第一行的部分都被遮挡住了,这是因为在ios7 之后,引入了一个新的属性:edgesForExtendedLayout,默认值是UIRectEdgeAll,当你用UINavigationController时,默认的布局就是从状态栏的顶部开始,所以前两行正如看到的那样向上偏移了64像素. @property(nonatomic,assign) UIRec

edgesForExtendedLayout ios7新特性导致autoLayout自动布局结果不正确

edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向. 因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域. ? self.edgesForExtendedLayout = UIRectEdgeNone; ? 来解决UINavigationBar透明的问题.设置了UIRectEdgeNone之后