edgesForExtendedLayout
来源:互联网 发布:网易蜂巢和阿里云 编辑:程序博客网 时间:2024/06/04 23:36
今天在做UISearchBar,UISearchDisplayController时遇到了一个问题,在点击搜索栏时阴影部分的位置出现偏差
如下图:
始终觉得很奇怪,后面单独做了一个demo,将同样的代码拷过去发现显示正常的。
然后再逐一查看代码看到如下:
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- if (OSVersionIsAtLeastiOS7()) {
- if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
- {
- self.edgesForExtendedLayout = UIRectEdgeNone;
- }
- }
- }
原因:
在iOS 7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:]
,它的默认值为UIRectEdgeAll
。当你的容器是navigation controller时,默认的布局将从navigation bar的顶部开始。这就是为什么所有的UI元素都往上漂移了44pt。
修复这个问题的快速方法就是在方法- (void)viewDidLoad
中添加如下一行代码:
<span class="line-number" style="margin: 0px; padding: 0px;">1</span>
self.edgesForExtendedLayout = UIRectEdgeNone;
这样问题就修复了。
0 0
- edgesForExtendedLayout
- edgesForExtendedLayout
- edgesForExtendedLayout
- edgesForExtendedLayout
- edgesForExtendedLayout
- edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- IOS7 edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- IOS7 edgesForExtendedLayout
- IOS7 edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- iOS7 edgesForExtendedLayout
- edgesForExtendedLayout属性
- edgesForExtendedLayout浅淡
- Java获取客户端IP
- & && | || 之间的区别
- Android开发SDK与Gradle更新解决方案
- Android获取WiFi 信息
- iOS 使用FMDB进行数据库操作
- edgesForExtendedLayout
- UVA 152 解题报告
- Unity2D研究院之自动生成动画、AnimationController、Prefab(一)
- Hadoop——入门方法
- HzhJava框架搭建二:添加tomcat和spring运行一个简单web程序
- Linux 出现unknown host
- springmvc学习笔记(6)——RequestHeader和CookieValue
- 新的开始
- 图解SVN开发版本控制和发布流程,Trunk、Tag、Branch的使用