2011-12-06 127 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”构建器中的“否”。