我做了与这个问题非常相似的事情。我创建了一个 MonoTouch DialogViewController,其中有一堆 EntryElements,用于捕获用户注册的信息。然后我将此 DialogViewController 添加到另一个 UIViewController 中:
registerDialog = new RegisterDialog (); // the dvc
registerDialog.View.Frame = new RectangleF (0, 60, 320, View.Frame.Height - 60);
registerDialog.TableView.BackgroundView = null; // make the background transparent
Add (registerDialog.View);
当用户单击 EntryElement 时,问题就出现了。键盘出现了,前几个 EntryElements 一切都很好,因为键盘没有隐藏任何东西。当您通过 EntryElements 时,DialogViewController 不再滚动键盘上方的元素。基本上 DialogViewController 的滚动中断。
这是由于将 DialogViewController 的视图添加到另一个视图中造成的。当将 DialogViewController 正常推送到 UINavigationController 时,它可以完美运行:
NavigationController.PushViewController (new LoginScreen (), true);
这是一个错误还是我可以覆盖某些东西来修复滚动?
编辑
屏幕截图 1:带有一些 EntryElements 的 DialogViewController。我已经向下滚动到底部 - 姓氏上方有更多的 EntryElements。
屏幕截图 2:当我点击 Email EntryElement 时会发生什么。您可以非常清楚地看到 DVC 没有向上滚动表格视图,而它通常会这样做。