iOS7 edgesForExtendedLayout
生活随笔
收集整理的這篇文章主要介紹了
iOS7 edgesForExtendedLayout
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天在做UISearchBar,UISearchDisplayController時(shí)遇到了一個(gè)問題,在點(diǎn)擊搜索欄時(shí)陰影部分的位置出現(xiàn)偏差
如下圖:
始終覺得很奇怪,后面單獨(dú)做了一個(gè)demo,將同樣的代碼拷過去發(fā)現(xiàn)顯示正常的。
然后再逐一查看代碼看到如下:
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.if (OSVersionIsAtLeastiOS7()) {if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){self.edgesForExtendedLayout = UIRectEdgeNone;}} }發(fā)現(xiàn)可疑之處,Google之 iOS 7 教程:讓程序同時(shí)支持iOS 6和iOS 7,找到答案。原因:
在iOS 7中,蘋果引入了一個(gè)新的屬性,叫做[UIViewController setEdgesForExtendedLayout:],它的默認(rèn)值為UIRectEdgeAll。當(dāng)你的容器是navigation controller時(shí),默認(rèn)的布局將從navigation bar的頂部開始。這就是為什么所有的UI元素都往上漂移了44pt。
修復(fù)這個(gè)問題的快速方法就是在方法- (void)viewDidLoad中添加如下一行代碼:
| 1 | self.edgesForExtendedLayout = UIRectEdgeNone; |
這樣問題就修復(fù)了。
總結(jié)
以上是生活随笔為你收集整理的iOS7 edgesForExtendedLayout的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 攻防世界xctfweb题leaking题
- 下一篇: mkdir: Permission de