我以编程方式创建了一个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];
答案 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模拟器并没有起作用。