0

在我的 iOS 应用程序中,我定期UIScrollView覆盖整个屏幕。这在顶部包含一个UIView(带有一些标题图像、工具和其他东西),然后在下面UIWebView包含一些 Web 内容(博客条目和评论)。

当专注于 web 视图的文本字段之一,从而显示键盘时,web 视图滚动以将输入字段放在键盘上方。问题是标题没有移开,从而覆盖了输入字段。

所以我的问题是;显示键盘时如何告诉代码滚动哪个滚动视图?似乎回退到一些默认行为,并滚动UIWebView保存输入字段的内容。我想滚动父UIScrollView级。

我试图将 上.scrollEnabled的 设置为 NO UIWebView,但这并没有改变任何东西。UIWebView甚至不应该具有滚动功能,因为每次填充 Web 视图时,我都将 ( 以及 main ) 的高度设置为其内容的UIWebView高度.contentSizeUIScrollView

我怎样才能做到这一点?还是我必须手动滚动?

4

3 回答 3

2

您应该注册键盘通知,我不知道它是否会解决问题,但请看这里:Apple doc about keyboard
我这样你就可以用屏幕上的键盘滚动滚动视图,但我猜 webview 也会响应,因为它已经注册了键盘通知,也许你也可以重新滚动它来听这种通知。

于 2013-05-28T08:43:55.850 回答
0

仅供参考

从苹果文档:

重要提示:您不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。

于 2013-05-28T08:51:37.577 回答
0

不要滚动任何内容以向上移动内容。要么做两件事之一: -

1:将所有内容放在一个容器视图中,并使用 UIView 动画将所有内容向上移动。这就是我所做的。

或者

2:将所有内容放在单独的滚动视图中并用于[scrollView setContentOffset:offset animated:YES];向上移动。虽然老实说这是一种旧方法,但我不会推荐它

那有意义吗?

于 2013-05-28T08:46:13.423 回答