UITableView不滚动(iOS)

时间:2012-05-15 21:58:44

标签: ios uitableview scroll

我以编程方式创建了一个UITableView,并发现它不会滚动。这是我第一次以编程方式创建UITableView而不是通过Interface Builder。是否有一些属性我需要以编程方式设置以使我的视图滚动?我试过setBounces,setScrollEnabled,setAlwaysBounceVertical,但似乎没什么用。任何想法将不胜感激!谢谢!

示例代码:

UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
CGFloat height = (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) ? 460 : 300;
feed = [[UITableView alloc] initWithFrame:CGRectMake(0.0f, 44.0f, self.bounds.size.width, height - 44.0f)];
[feed setSeparatorColor:[UIColor colorWithRed:38.0f/255.0f green:43.0f/255.0f blue:63.0f/255.0f alpha:1.0f]];
[feed setBackgroundColor:[UIColor colorWithRed:48.0f/255.0f green:53.0f/255.0f blue:73.0f/255.0f alpha:1.0f]];
[feed setDataSource:self];
[feed setDelegate:self];
[feed setHidden:YES];
[feed setBounces:YES];
[feed setScrollEnabled:YES];
[feed setAlwaysBounceVertical:YES];
[feed setDelaysContentTouches:YES];
[self addSubview:feed];

5 个答案:

答案 0 :(得分:1)

尝试在TableView上设置delaysContentTouches。

答案 1 :(得分:0)

ScrollViews必须设置其contentSize才能滚动。尝试设置contentSize:

[feed setContentSize:[feed frame].size];

答案 2 :(得分:0)

我试着把它放在评论中但是太长了......

您的大多数set方法只是设置默认值,因此在代码的最终版本中不需要它们。此外,创建tableview并将其添加为子视图的方式也没有任何问题。这让我相信这个bug存在于周围的代码中,可能与superview上的属性有关。当你说“完美地工作”时,你的意思是你可以选择单元格并调用你的didSelectRow ...方法吗?您可以尝试对事情进行注释,将tableview剥离到所需的裸线(init,addSubview,numberOfRows返回0,cellForRow返回nil,不设置除委托和数据源之外的任何内容)。这应该会给你一个空的桌面视图,即使其中没​​有任何内容也可以滚动和反弹。

答案 3 :(得分:0)

我知道这是一个旧线程,但你有没有机会在iOS模拟器中看到这个问题?我的表视图遇到了同样的问题,但事实证明我在模拟器中没有使用正确的手势。请参阅Can't get UITableView list to scroll in iPhone simulator

答案 4 :(得分:0)

我正在使用启动iOS模拟器的Xamarin Studio。我不得不重启我的Mac。现在tableview再次滚动。只重新启动Xamarin或iOS模拟器并没有起作用。