UITableView 不滚动 (iOS)



我以编程方式创建了一个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];

尝试在 TableView 上设置延迟内容触摸。

ScrollView 必须设置其 contentSize 才能滚动。 尝试设置内容大小:

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

我试图把它放在评论中,但它太长了......

大多数设置方法只是设置默认值,因此在代码的最终版本中不需要它们。 此外,创建表视图并将其添加为子视图的方式没有错。 这让我相信错误存在于周围的代码中,可能与超级视图上的属性有关。 当您说"完美工作"时,您的意思是您可以选择单元格并拥有您的didSelectRow...方法叫? 您可以尝试注释掉内容,将表视图剥离到所需的基本内容(init,addSubview,numberOfRows 返回 0,cellForRow 返回 nil,不要设置委托和数据源以外的任何内容)。 这应该给你一个空的表视图,即使没有任何东西,它也会滚动和反弹。

我知道

这是一个旧线程,但是您是否有机会在iOS模拟器中看到此问题?我的表格视图遇到了同样的问题,但事实证明我只是没有在模拟器中使用正确的手势。请参阅无法获取 UITableView 列表以在 iPhone 模拟器中滚动。

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

最新更新