禁用UITableView(iPhone SDK 3.0)中的滚动

我试图在UITableViewembeddedUITextField编辑UITableView禁用滚动。 这只是为了防止细胞在编辑时滚动出来(也避免了一些相关的细胞“回收”问题)。 在search时我看到有人提出了明显的:

 tableView.scrollEnabled = NO: 

甚至

 tableView.userInteractionEnabled = NO; 

这不工作虽然(至less对我来说… iPhone SDK 3.0,尝试在模拟器上)我将这些属性设置为NO,我甚至通过日志logging检查属性设置为NO,但UITableView保持正常响应触摸事件。 而且它也很高兴地滚动。 如果networking上有人没有声称这真的有效,我不会那么担心。

我错过了什么吗? 或者是唯一的替代子类UITableView使其超类(UIScrollView)可用的function再次工作?

你尝试使用self.tableView.scrollEnabled = NO;

我经常试图从网上的代码不起作用,只是因为缺less前缀自我。 我只是试了一下没有问题。

我不知道这个工作时,dynamic打开和closures。 它至less在初始化对象时用于永久设置…

如果你正在使用UITableViewController ,你也有一个tableView属性,不需要强制转换。 这适用于我:

 self.tableView.scrollEnabled = NO; 

让我知道这是否适合你。

你尝试故事板取消select滚动启用?

滚动已启用:否

我试过了:

 [(UIScrollView*)[self view] setScrollingEnabled:NO]; 

它的工作([自我观点]是我当前视图控制器的视图,即UITableView)。

事情是,我得到一个警告:

'UIScrollView'可能不会响应'-setScrollingEnabled:'

诚实地说,这个属性是“scrollEnabled”,但是它仍然可以用上面提到的代码工作!

所以,“正确”的做事方式应该是:

 [(UIScrollView*)[self view] setScrollEnabled:NO]; 

为什么它也可以用另一种方式工作,让我感到困惑…

这些答案都没有在我的情况下工作。 虽然每个scrollView被禁用,但表视图保持滚动。

最后,我在这里find了解决scheme,声称UITableViewController这样做“对我来说”每当键盘隐藏正在编辑的UITextView。

解决scheme是从UIViewController而不是UITableViewControllerinheritance,并自己实现所需的表function。

如果只想滚动其内容不可见,则设置:

yourTableview.alwaysBounceVertical = NO;

在这里,如果你的内容是可见的,那么你的tableview将不会滚动