2013-03-13 64 views
4

我正在使用一個帶有向下自動滾動的tableView的應用程序,因此點擊狀態欄(通常會跳到表頂部)會導致問題(它開始滾動,但如果自動滾動滴答,它會停止並將它留在中間的某個地方)。當點擊狀態欄時,我可以禁用/編輯自動跳轉到頂部滾動嗎?

我想要禁用它,或者至少在輕敲時臨時暫停計時器,然後在達到頂部時恢復它。

有沒有辦法實現這些東西?

回答

10

UIScrollView(和UITableView作爲它的一個子類)具有scrollsToTop屬性默認爲YES,使其滾動時的狀態欄被竊聽到頂部。您只需將其設置爲NO即可。

但是,請記住,iOS用戶可能會預期這種行爲,因此從用戶體驗角度來看,關閉它可能不是最好的想法。如果您只需要在特定時間禁用代理方法,您也可以將其保留爲YES並從-scrollViewShouldScrollToTop:代表方法返回NO

事實上,通過委託處理這可能是一個非常適合你的情況:

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView 
{ 
    // disable timer 
    return YES; 
} 

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView 
{ 
    // re-enable timer 
} 
+0

完美,謝謝! – Luke 2013-03-13 22:00:53

7

你可以試試:

[myView setScrollsToTop:NO]; 
相關問題