self.edgesForExtendedLayout=UIRectEdgeNone--将原点移动到navigationBar下面

edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向。

因为iOS7鼓励全屏布局,它的默认值很自然地是UIRectEdgeAll,四周边缘均延伸,就是说,如果即使视图中上有navigationBar,下有tabBar,那么视图仍会延伸覆盖到四周的区域。

具体代码是这句:

self.edgesForExtendedLayout = UIRectEdgeNone;

来解决UINavigationBar透明的问题。设置了UIRectEdgeNone之后,你嵌在UIViewController里面的UITableView和UIScrollView就不会穿过UINavigationBar了,同时UIView的控件也回复到了iOS6时代。

不过这个对于Status Bar在iOS7上面的变化是无效的,正确的说应该是部分无效。在存在Navigation部分或者Tabbar部分的时候,上面的代码可以使得Status Bar也不载透明(有待验证,毕竟UIViewController的可用空间被控制了),但是在没有这两个部分的时候,Status Bar依旧是会记入UIView范围的。

问题:使用了Xib常见一个viewController后不加这句话,原点位置也移动到navigationBar下面。

注:本人参考了一下别人的总结,加了一些个人理解。大家可以看一下。

self.edgesForExtendedLayout=UIRectEdgeNone--将原点移动到navigationBar下面

时间: 2024-10-12 23:22:08

self.edgesForExtendedLayout=UIRectEdgeNone--将原点移动到navigationBar下面的相关文章

self.edgesForExtendedLayout=UIRectEdgeNone;

IOS7之后 self.edgesForExtendedLayout=UIRectEdgeNone; self.automaticallyAdjustsScrollViewInsets=NO; 只要设置了 self.edgesForExtendedLayout ,UIRectEdgeAll的时候会让tableView从导航栏下移44px,设置为UIRectEdgeNone的时候,刚刚在导航栏下面. self.edgesForExtendedLayout=UIRectEdgeNone or UIR

TableView cell自适应高度-----xib

1.通过xib创建一个cell,将label进行上左下右,进行适配, self.automaticallyAdjustsScrollViewInsets = NO; self.edgesForExtendedLayout = UIRectEdgeNone;//将原点移动到navigationBar下面去了 tableView.estimatedRowHeight = 37.0;//估计cell的高度 tableView.rowHeight = UITableViewAutomaticDimens

[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 = @"关注公众

navigationBar设置透明

//设置全透明方式 一.完全不用图片(iOS7之后有效)[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];self.navigationBar.translucent = YES; //iOS7必须显示指定,否则无透明self.navigationBar.shadowImage = [UIImage new]; //若bar是全透明,用此干掉bar底的线 二.使用一张1*

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 下面, 属性设置

IOS7以上navigationBar遮挡页面的解决方法.

在IOS7以上,navigationbar车档界面的解决方法.在viewDidload中.添加以下代码. if( ([[[UIDevice currentDevice] systemVersion] doubleValue]>=7.0)) { self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars = NO; self.modalPresentationCapturesStatusBa