在我的iOS应用中,我有一个覆盖整个屏幕的常规UIScrollView
。这包含顶部的UIView
(带有一些标题图片,工具和其他内容),并且在UIWebView
下面填充了一些网页内容(博客条目和评论)。
当关注Web视图的其中一个文本字段,从而显示键盘时,Web视图会滚动以将输入字段放在键盘上方。问题是标题不会移开,从而覆盖输入字段。
所以我的问题是;如何在显示键盘时告诉滚动视图滚动的代码?似乎回退到某些默认行为,并滚动保存输入字段的UIWebView
。我想改为滚动父UIScrollView
。
我试图在.scrollEnabled
上将UIWebView
设置为NO,但这不会改变任何内容。 UIWebView
甚至不应该具有滚动功能,因为我将UIWebView
(以及主.contentSize
的{{1}})的高度设置为其高度内容,每次填充Web视图时。
我怎样才能做到这一点?或者我是否必须手动滚动?
答案 0 :(得分:2)
您应该注册键盘通知,我不知道是否可以解决问题,但请看一下:Apple doc about keyboard。
我通过这种方式你可以在屏幕上用键盘滚动滚动视图,但我想webview也会响应,因为它已经注册了键盘通知,也许你也可以重新注册它来听这种通知。
答案 1 :(得分:0)
不要滚动内容以移动内容。要么做两件事之一: -
1:将所有内容放在容器视图中,并使用UIView动画将所有内容移动。这就是我做的。
或
2:将所有内容放在单独的滚动视图中,然后使用[scrollView setContentOffset:offset animated:YES];
将其向上移动。虽然说实话,这是一种古老的方法,我不推荐它
这有意义吗?
答案 2 :(得分:0)
仅供参考
来自Apple文档:
重要提示:您不应该嵌入UIWebView或UITableView对象 UIScrollView对象。如果这样做,可能会导致意外行为 因为两个对象的触摸事件可能混淆错误 处理。