2011-12-06 160 views
3

我是iOS開發新手,所以這對於某個人來說應該是一個簡單的問題。 我正在創建一個滾動視圖(嘗試不同的方式,UIScrollView,UITableView,UITableViewController),每次我向下滾動滾動回滾到頂部自動。爲什麼會發生?iOS滾動視圖禁用自動滾動到頂部

我知道「scrollsToTop」正在傾聽某些遊客滾動到頂部,但設置爲NO,所以不應該是這樣。 「pagingEnabled」已被測試爲YES和NO,但沒有影響。

試圖實現一個UITableViewDelegate並重寫scrollViewShouldSrollToTop函數並返回NO,但該函數從未被調用,即使它被設置爲tableView的委託。

@interface Scroller : NSObject<UITableViewDelegate> 

@implementation 
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView)scrollView {return NO;} 

// Did finish launching application 
tableView = [[UITableView alloc] initWithFrame:tableRect style:UITableViewStyleGrouped]; 
self->tableView.pagingEnabled = NO; 
tableView.scrollsToTop = NO; 
[tableView setScrollsToTop:NO]; 
static Scroller s = [[Scroller alloc] init]; 
tableView.delegate = s; 

不介意格式化。這一切都是一團糟。 tableView屬於應用程序委託,並在..didFinishLaunchingWithOptions:...函數中調用。 我在Scroller函數「scrollViewShouldScrollToTop」中有一個斷點,但它從來沒有命中。

+0

它在哪一點回滾?有沒有延遲,還是立即回彈? –

+0

它立即回彈。當我放開屏幕時,它會彈回到頂部。 –

回答

1

我使用UIScrollView而不是UITableView,並將contentSize設置爲大於視圖框架然後工作的東西。儘管如此,仍然不知道UITableView的問題。

4

自動滾動到頂部可能發生,也許如果你在頂部酒吧(黑色)上敲擊?在任何情況下,你可以嘗試禁用該功能 -

[yourScrollView].scrollsToTop = NO;

這應該適用於tableViewscrollView

+0

對不起,這對我不起作用。它被設置爲NO,但沒有任何變化。還嘗試了自我 - > [myScrollView] .scrollsToTop = NO和[[myScrollView] setScrollsToTop:NO]。也許代表有事情嗎?沒有任何內容被分配給委託屬性。 –

+1

你能告訴我一些代碼或一些截圖嗎?在黑暗的房間裏很難在靶心上投擲飛鏢...... –

+0

有什麼辦法可以讓我們禁用整個應用程序? –

0

當沒有足夠的項目,以填補所有高度UITableView - 它每次都會回滾動。 您還應該爲UIScrollView設置contentSize屬性以使其可滾動。

當用戶點擊狀態欄時,應該發生前面提到的滾動到頂部。但據我瞭解,這不是你的問題。

+0

我認爲你對滾動到頂部的權利不是我的問題。現在我用UIButtons填充tableView,並且有更多的按鈕,然後窗口可以顯示(它顯示6個垂直,有12個)。 我試過設置contentSize,但是也沒有改變任何東西。我通過做[tableView addSubView:button]添加按鈕;我也試過[tableView insertSubview:button atIndex:0];也許這是問題所在。該按鈕不是子視圖,而是一個項目/對象?但我找不到任何其他函數添加到tableView的東西。 –

0

您應該禁用滾動視圖的彈跳屬性,將其設置爲「Inrterface」構建器中的「否」。