[super viewDidLoad];
// Do any additional setup after loading the view.
if (OSVersionIsAtLeastiOS7()) {
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
self.edgesForExtendedLayout = UIRectEdgeNone;
}
}
}```
[答案來源](http://beyondvincent.com/blog/2013/11/19/122-working-with-ios-6-and-7/)
原因:
在iOS 7中,蘋果引入了一個新的屬性,叫做 `[UIViewController setEdgesForExtendedLayout:]`
,它的默認值為`UIRectEdgeAll`
。當你的容器是navigation controller時,默認的布局將從navigation bar的頂部開始。這就是為什么所有的UI元素都往上漂移了`44pt`。
修復這個問題的快速方法就是在方法- (void)viewDidLoad
中添加如下一行代碼:
`self.edgesForExtendedLayout = UIRectEdgeNone;`
這樣問題就修復了。
iOS7 edgesForExtendedLayout
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 在iOS 7中,蘋果引入了一個新的屬性,叫做[UIViewController setEdgesForExtend...
- 做UISearchBar,UISearchDisplayController時遇到了一個問題,在點擊搜索欄時陰影部...
- 在iOS 7中,蘋果引入了一個新的屬性,叫做[UIViewController setEdgesForExtend...
- 在iOS 7中,蘋果引入了一個新的屬性,叫做[UIViewController setEdgesForExtend...