谈谈tableView的重要属性内边距
全屏穿透效果需要做到兩點(diǎn)
tableView的可視范圍占據(jù)整個父控件(或者屏幕)--設(shè)置contentsize滾動范圍。
所有的cell都可以被看到,也就是說tableView中的cell不會被導(dǎo)航欄,titleView以及TabBar所遮擋--設(shè)置contentInset內(nèi)邊距。
例如:首頁控制器的view的第一個子控件是scrollView(添加子控制器視圖tableview),而且首頁控制器包裹了導(dǎo)航控制器和TabBarController,所以,scrollView的內(nèi)容上邊被擠下來64,下邊被擠上去49.
解決方案
可視范圍:
2. 告訴系統(tǒng)不要自動調(diào)整scrollView的內(nèi)邊距
3. 首頁控制器:
automaticallyAdjustsScrollViewInsets = NO;
經(jīng)過這個,ScrollView的內(nèi)容(tableView)確實(shí)上移了,但是還是預(yù)留了20,這個是時候通過打印知道tableView的y值是20,height = 667 - 20 = 647;
4. 設(shè)置tableView的 y = 0.
5. 設(shè)置tableView的height = scrollView.height;
這個時候就實(shí)現(xiàn)了tableView的可視范圍為整個scrollView.換句話說tableView和scrollView完全重合.
但是
新的問題出現(xiàn)了:新的問題出現(xiàn)了:這個時候的tableView和scrollView完全重合,tableView中的內(nèi)容(在這里是cell,如果有tableHeaderView的話就包括tableHeaderView)和tableview完全重合.那么就會有一部分cell被導(dǎo)航控制器以及titleView擋住.當(dāng)下拉下來以后,松手就由彈上去了.內(nèi)容被遮擋.同樣底部也會被TabBar擋住
不被導(dǎo)航遮住內(nèi)容:
解決方案:給tableView增加額外的滾動區(qū)域,即設(shè)置內(nèi)邊距,其中上邊設(shè)置64(導(dǎo)航條高度)+35(titleView的高度),下邊設(shè)置49(TabBar高度)。具體代碼如下:
scrollView.contentInset = UIEdgeInsetsMake(64 + 35, 0, 49, 0);
到現(xiàn)在為止完成了所有步驟:
1.通過改變tableView的frame --以及讓系統(tǒng)不要自動調(diào)整scrollView的內(nèi)邊距讓tableView的可視范圍為占據(jù)整個scrollView
2.通過設(shè)置tableView的內(nèi)邊距,讓tableView中的所有cell都可以顯示,即往下走一個導(dǎo)航欄的高度.
以前介紹tableView的重要屬性內(nèi)邊距
1. 主要概念
2.
a.沒有cell
b.沒有contentInset
c.沒有tableHeaderView、tableFooterView
3.
a.沒有cell
b.沒有contentInset
c.有tableHeaderView、tableFooterView
4.
a.有cell
b.沒有contentInset
c.沒有tableHeaderView、tableFooterView
5.
a.有cell
b.有contentInset
c.沒有tableHeaderView、tableFooterView
6.
a.有cell
b.沒有contentInset
c.有tableHeaderView、tableFooterView
7.
a.有cell
b.有contentInset
c.有tableHeaderView、tableFooterView
8.
a.有cell
b.沒有contentInset
c.沒有tableHeaderView、tableFooterView
d.有額外子控件{0,-40,375,40}
9.
a.有cell
b.沒contentInset
c.沒有tableHeaderView、tableFooterView
d.有額外子控件{0,-40,375,40}
10.
a.有cell
b.沒有contentInset
c.有tableHeaderView、tableFooterView
d.有額外子控件{0,-40,375,40}
11.
a.有cell
b.有contentInset
c.有tableHeaderView、tableFooterView
d.有額外子控件{0,-40,375,40}
總結(jié)
以上是生活随笔為你收集整理的谈谈tableView的重要属性内边距的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言编程中的保留字_Pyth
- 下一篇: 以太网协议