例如:首頁控制器的view的第一個子控件是scrollView(添加子控制器視圖tableview),並且首頁控制器包裹了導航控制器和TabBarController,因此,scrollView的內容上邊被擠下來64,下邊被擠上去49.code
automaticallyAdjustsScrollViewInsets = NO;
通過這個,ScrollView的內容(tableView)確實上移了,可是仍是預留了20,這個是時候經過打印知道tableView的y值是20,height = 667 - 20 = 647;
4. 設置tableView的 y = 0.
5. 設置tableView的height = scrollView.height;
這個時候就實現了tableView的可視範圍爲整個scrollView.換句話說tableView和scrollView徹底重合.blog
可是
新的問題出現了:新的問題出現了:這個時候的tableView和scrollView徹底重合,tableView中的內容(在這裏是cell,若是有tableHeaderView的話就包括tableHeaderView)和tableview徹底重合.那麼就會有一部分cell被導航控制器以及titleView擋住.當下拉下來之後,鬆手就由彈上去了.內容被遮擋.一樣底部也會被TabBar擋住it
scrollView.contentInset = UIEdgeInsetsMake(64 + 35, 0, 49, 0);
到如今爲止完成了全部步驟:
1.經過改變tableView的frame --以及讓系統不要自動調整scrollView的內邊距讓tableView的可視範圍爲佔據整個scrollViewio
2.經過設置tableView的內邊距,讓tableView中的全部cell均可以顯示,即往下走一個導航欄的高度.table
之前介紹tableView的重要屬性內邊距scroll
a.沒有cell b.沒有contentInset c.沒有tableHeaderView、tableFooterView
a.沒有cell b.沒有contentInset c.有tableHeaderView、tableFooterView
a.有cell b.沒有contentInset c.沒有tableHeaderView、tableFooterView
a.有cell b.有contentInset c.沒有tableHeaderView、tableFooterView
a.有cell b.沒有contentInset c.有tableHeaderView、tableFooterView
a.有cell b.有contentInset c.有tableHeaderView、tableFooterView
a.有cell b.沒有contentInset c.沒有tableHeaderView、tableFooterView d.有額外子控件{0,-40,375,40}
a.有cell b.沒contentInset c.沒有tableHeaderView、tableFooterView d.有額外子控件{0,-40,375,40}
a.有cell b.沒有contentInset c.有tableHeaderView、tableFooterView d.有額外子控件{0,-40,375,40}
a.有cell b.有contentInset c.有tableHeaderView、tableFooterView d.有額外子控件{0,-40,375,40}