談?wù)則ableview一鍵到頂和UIScrollView的scrollsToTop屬性

相信很多人都沒有注意到iOS有這樣一個(gè)隱藏的功能:當(dāng)前頁面有滾動(dòng)視圖(UIScrollView或者UIScrollView的子類纺裁,下面我都稱作滾動(dòng)視圖)勺疼,觸摸狀態(tài)欄斋射,視圖會(huì)自動(dòng)滾動(dòng)的最頂端辙培,相當(dāng)于一些網(wǎng)頁的回到頂端的功能朝抖。下面給個(gè)圖來展示下:


圖1:觸摸狀態(tài)欄回到頂部

一. 遇到的問題
如果頁面有多個(gè)滾動(dòng)視圖,如頂部一個(gè)廣告輪播控件(假如是基于UIScrollView
的輪播控件)梳玫,下面是一個(gè)TableView爹梁,你會(huì)發(fā)現(xiàn)觸摸狀態(tài)欄沒有反應(yīng)了,回到頂部功能失效提澎。
二. 解決問題
細(xì)細(xì)研究了一番返現(xiàn)卫键,UIScrollView
有個(gè)scrollsToTop屬性,這個(gè)屬性就是控制滾動(dòng)到頂部手勢(shì)的開關(guān)虱朵。它的默認(rèn)值是YES
莉炉,所以不用我們?cè)O(shè)置,默認(rèn)是支持滾動(dòng)到頂部的碴犬。具體詳細(xì)描述如下:
The scroll-to-top gesture is a tap on the status bar. When a user makes this gesture, the system asks the scroll view closest to the status bar to scroll to the top. If that scroll view hasscrollsToTop
set toNO
, its delegate returnsNO
from scrollViewShouldScrollToTop:, or the content is already at the top, nothing happens.

簡(jiǎn)單點(diǎn)的說就是有兩種方式來設(shè)定scroll to top
絮宁,一個(gè)是設(shè)置scrollsToTop
屬性,另一個(gè)是實(shí)現(xiàn)UIScrollView
的代理方法scrollViewShouldScrollToTop:服协。如果滾動(dòng)視圖scrollsToTop
屬性設(shè)為NO
绍昂,它的代理方法scrollViewShouldScrollToTop:返回NO
,或者內(nèi)容已經(jīng)在頂部了偿荷,這樣觸摸狀態(tài)欄窘游,是沒有任何反應(yīng)的。
好了跳纳,繼續(xù)回到上面遇到的問題忍饰,既然默認(rèn)是YES,為什么回到頂部的功能失效了呢寺庄,其實(shí)仔細(xì)想一想就知道了艾蓝,因?yàn)橛袃蓚€(gè) scrollView,他們默認(rèn)都有scroll to top
功能斗塘,所以觸摸狀態(tài)欄時(shí)赢织,系統(tǒng)無法判斷是使哪個(gè)ScrollView回到頂部。
解決方案很簡(jiǎn)單馍盟,就是設(shè)置其中一個(gè)ScrollView的scrollsToTop
值為NO
(例如我將廣告輪播控件的scrollsToTop
設(shè)為NO
)于置,這樣系統(tǒng)就知道要使哪個(gè)ScrollView
回到頂部了。如果當(dāng)前頁面有多個(gè)滾動(dòng)視圖的話贞岭,要確保只有一個(gè)滾動(dòng)視圖scrollsToTop
的值為YES
八毯。

另外,在tableview的其他地方曹步,可以用改變位置的方式使它滾動(dòng)到頂部

1.[mainFolioTB setContentOffset:CGPointMake(0,0) animated:NO];

2. NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lineNumber inSection:0];
[tableView_ selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宪彩,一起剝皮案震驚了整個(gè)濱河市休讳,隨后出現(xiàn)的幾起案子讲婚,更是在濱河造成了極大的恐慌,老刑警劉巖俊柔,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筹麸,死亡現(xiàn)場(chǎng)離奇詭異活合,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)物赶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門白指,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酵紫,你說我怎么就攤上這事告嘲。” “怎么了奖地?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵橄唬,是天一觀的道長。 經(jīng)常有香客問我参歹,道長仰楚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任犬庇,我火速辦了婚禮僧界,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臭挽。我一直安慰自己捂襟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布欢峰。 她就那樣靜靜地躺著笆豁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赤赊。 梳的紋絲不亂的頭發(fā)上闯狱,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音抛计,去河邊找鬼哄孤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吹截,可吹牛的內(nèi)容都是我干的瘦陈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼波俄,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼晨逝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起懦铺,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤捉貌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趁窃,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡牧挣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年念搬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了草姻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡些举,死狀恐怖刨摩,靈堂內(nèi)的尸體忽然破棺而出寺晌,到底是詐尸還是另有隱情,我是刑警寧澤澡刹,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布折剃,位于F島的核電站,受9級(jí)特大地震影響像屋,放射性物質(zhì)發(fā)生泄漏怕犁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一己莺、第九天 我趴在偏房一處隱蔽的房頂上張望奏甫。 院中可真熱鬧,春花似錦凌受、人聲如沸阵子。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挠进。三九已至,卻和暖如春誊册,著一層夾襖步出監(jiān)牢的瞬間领突,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工案怯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留君旦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓嘲碱,卻偏偏與公主長得像金砍,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子麦锯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容