在開發(fā)過程中燕刻,很多小伙伴會遇到頁面不需要導航欄,然后tableView上面有一個headerView了袁,但是實際上又好像不是headerView坦仍,因為headerView隨著tableView下拉之后會頂部會出現(xiàn)斷層的現(xiàn)象如下圖:
這樣的斷層就很不和諧水慨,如果能做到上面不出現(xiàn)斷層得糜,是不是會更美觀一點呢敬扛,所以這樣時候就想著如果下拉的時候只是等比拉伸該多好啊是不是想要這種效果呢如圖松手的時候還會彈回具有彈性
沒有拉伸的時是這樣子的:
完美,思路是怎樣的呢朝抖,要想隨著滾動
思路一:那就要么是tableView的頭部啥箭,但是會出現(xiàn)斷層現(xiàn)象
思路二:不是taleView頭部固定在父視圖上,但是這樣不會出現(xiàn)縮放和一起滾動的效果
吧兩個方案綜合一下治宣,我們固定在父視圖上急侥,讓頭部隨著tableView滾動的時候改變高度即可做到頭部縮放的效果咯;
- (void)scrollViewDidScroll:(UIScrollView*)scrollView 在這個方法里面控制
要想下拉之后tableView還有彈性侮邀,那么久需要在tableView的contentInset這個屬性上做文章了坏怪,我們設置它的contentInset 為_
tabView.contentInset = UIEdgeInsetsMake(topHeight, 0, 0, 0); ?
_tabView.scrollIndicatorInsets = _tabView.contentInset;
?topHeight是你頭部視圖的高度,這樣你下拉的時候tableView就會有彈性了
然后在滾動的方法里面改變頭部視圖的高度
這一塊是核心地方 解釋一下為什么偏移量不是contentOffset.y ?為什么要加上?scrollView.contentInset.top; 因為開始我們設置了tableView的偏移量
所以綜上所述绊茧,就兩步铝宵,第一設置tableView的偏移量,第二在滾動的時候讓頭部視圖跟隨一起縮放华畏,當然記得設置圖面的contentMode屬性鹏秋,否則是不會縮放的哦
_topBackView.contentMode = UIViewContentModeScaleAspectFill;
好了,這就是我開發(fā)中遇到的一點小問題然后自己總結了一下怎么處理的方法亡笑,其實細心的小伙伴會發(fā)現(xiàn)這樣所貌似會和tableView的下拉刷新方法出現(xiàn)沖突侣夷,這里留給各位小伙伴思考一下哦。下次做解答仑乌!