對tableView的contentOffset的理解

tableView往上滾動, contentOffset.y為正,此時對于tableView內(nèi)部控件而言,原點在哪里?

如圖所示:未開始滾動時,contentOffset.y == 0 和原點 同在一條分割線上,隨著向上滾動的進行,對于tableView內(nèi)部控件而言原點已經(jīng)滾動到原來contentOffset.y == 0這條分割線的上方了,而此時這個位置的分割線變成contentOffset.y == 偏移量,不再是0了,是一個正數(shù)

// 圖片是加到tableView上的
如果,要想tableView向上滾動的時候,這張圖片跟著一起滾動的話,應該設置圖片的y值為0,高度保持不變. 如果y值設置為offset.y,那么圖片就會固定不動了

#define OMNIBUS_HEADERINSET 214
#define HEADER_HEIGHT 48

 CGPoint offset = _tableView.contentOffset;
 CGFloat headerHeight = _coverInset - offset.y;

// 封面圖上拉 offset.y為正,圖片y值設置為0,高度不變
// 圖片原來高度_coverInset(214) + HEADER_HEIGHT(48),留出48是工具條的高度
// 所以 _coverInset是一個臨界值 等于214 OMNIBUS_HEADERINSET
if (headerHeight < _coverInset) {
        _coverImgView.frame = CGRectMake(_coverImgView.frame.origin.x,
                                         0,
                                         _coverImgView.frame.size.width,
                                         _coverInset + HEADER_HEIGHT);
}

tableView往下滾動, contentOffset.y為負

如圖所示:未開始滾動時,contentOffset.y == 0 和原點 同在一條分割線上,隨著向下滾動的進行,對于tableView內(nèi)部控件而言原點已經(jīng)滾動到原來contentOffset.y == 0這條分割線的下方了,而此時這個位置的分割線變成contentOffset.y == 偏移量,不再是0了,是一個負數(shù)

// 圖片是加到tableView上的
如果,要想tableView向下滾動的時候,這張圖片粘住原來的位置的話,應該設置圖片的y值為offset.y,并且高度增加. 如果y值設置為0,那么圖片就會不會粘住原來的位置了

// 封面圖下拉 offset.y為負,圖片y值跟隨offset.y變化,高度增加
#define OMNIBUS_HEADERINSET 214
#define HEADER_HEIGHT 48

 CGPoint offset = _tableView.contentOffset;
 CGFloat headerHeight = _coverInset - offset.y;
// 圖片原來高度_coverInset(214) + HEADER_HEIGHT(48),留出48是工具條的高度
// 所以 _coverInset是一個臨界值 等于214 OMNIBUS_HEADERINSET
if (headerHeight > _coverInset) {
 _coverImgView.frame = CGRectMake(_coverImgView.frame.origin.x,
                                         offset.y,
                                         _coverImgView.frame.size.width,
                                         headerHeight + HEADER_HEIGHT);
}
向下滾動.png
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容