我正在使用一個帶有向下自動滾動的tableView的應用程序,因此點擊狀態欄(通常會跳到表頂部)會導致問題(它開始滾動,但如果自動滾動滴答,它會停止並將它留在中間的某個地方)。當點擊狀態欄時,我可以禁用/編輯自動跳轉到頂部滾動嗎?
我想要禁用它,或者至少在輕敲時臨時暫停計時器,然後在達到頂部時恢復它。
有沒有辦法實現這些東西?
我正在使用一個帶有向下自動滾動的tableView的應用程序,因此點擊狀態欄(通常會跳到表頂部)會導致問題(它開始滾動,但如果自動滾動滴答,它會停止並將它留在中間的某個地方)。當點擊狀態欄時,我可以禁用/編輯自動跳轉到頂部滾動嗎?
我想要禁用它,或者至少在輕敲時臨時暫停計時器,然後在達到頂部時恢復它。
有沒有辦法實現這些東西?
UIScrollView
(和UITableView
作爲它的一個子類)具有scrollsToTop
屬性默認爲YES
,使其滾動時的狀態欄被竊聽到頂部。您只需將其設置爲NO
即可。
但是,請記住,iOS用戶可能會預期這種行爲,因此從用戶體驗角度來看,關閉它可能不是最好的想法。如果您只需要在特定時間禁用代理方法,您也可以將其保留爲YES
並從-scrollViewShouldScrollToTop:
代表方法返回NO
。
事實上,通過委託處理這可能是一個非常適合你的情況:
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
// disable timer
return YES;
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
// re-enable timer
}
你可以試試:
[myView setScrollsToTop:NO];
完美,謝謝! – Luke 2013-03-13 22:00:53