【问题标题】:UIScrollView Not Scrolling In iOS 7 StoryBoardUIScrollView 在 iOS 7 StoryBoard 中不滚动
【发布时间】:2013-10-30 14:13:32
【问题描述】:

我正在尝试在视图控制器中一起添加 UILabel 和 UIWebView,并希望它们一起滚动。所以为了实现这一点,我在这两个视图后面添加了一个 UIScrollView,但 UIScrollView 只是不滚动。我正在使用 Storyboard 和 iOS 7 SDK。

我看到了很多问题,但它们没有多大帮助。有些人建议我应该禁用由于项目要求而无法执行的 AutoLayout。我还能做些什么来让它发挥作用?谢谢!

【问题讨论】:

  • scrollView的contentSize是多少?你到底是怎么滚动的? webView 有它自己的滚动条,因此您基本上是在嵌套滚动条视图,它们的工作方式可能与您的预期不同。
  • @Adis 我已将 scrollView 的 contentSize 设置为不同的值,但它不起作用。 UIWebView 正在滚动,但 UIScrollView 没有。
  • 您是在 webView 内部触摸还是在外部触摸?如果在里面,webView 可能正在窃取触摸事件。此外,滚动的内容大小需要大于要滚动的框架。
  • 如果我触摸 UIWebView 内部,那么 UIWebView 会滚动,但如果我触摸外部,那么 UIScrollView 不会滚动。我尝试禁用 UIWebView 的触摸,这会使 UIWebView 停止滚动但 UIScrollView 仍然不滚动。
  • 如果你有 2 个相互嵌套的滚动视图,只有一个可以响应触摸,你将不得不禁用 webview 或滚动视图上的滚动。

标签: iphone ios objective-c uiwebview uiscrollview


【解决方案1】:

UIWebView 的文档说明:

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

您需要将标签和 Web 视图包装在常规 UIView 中。将常规视图添加到滚动视图。

【讨论】:

    【解决方案2】:

    根据 Apple 的文档,您不应该在 UIScrollView 中使用 UIWebView。您可以做的是将您的 UILabels 和 UIWebView 添加到另一个 UIView 中,然后将此 UIview 添加到 UIScrollView 中。

    其次,您必须设置 UIScrollView 的 contentSize 才能使其工作。

    您还必须禁用嵌入在 UIScrollView 中的 UIWebView 的滚动。

    如果您的问题没有解决。最好只打开 AutoLayout。我也遇到过同样的问题,如果不禁用 AutoLayout 就无法解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2013-09-29
      相关资源
      最近更新 更多