【问题标题】:UIWebview scrollsToTop not working when a UIScrollview is present as subview当 UIScrollview 作为子视图存在时,UIWebview scrollsToTop 不起作用
【发布时间】:2012-02-05 10:14:34
【问题描述】:

我在 UIWebView 上遇到了 setScrollsToTop: 的问题。 webview 是根视图控制器的子视图,我在viewDidLoad 上设置:

[self.webView.scrollView setScrollsToTop:YES];

但是,当我点击状态栏时,webview 不会滚动到顶部。在应用程序内的另一个模态 tableViewController 上它工作正常,甚至没有设置setScrollsToTop:YES。这是应用程序委托内applicationDidFinishLaunching 中的代码:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.f = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
self.window.rootViewController = self.f;
[self.window makeKeyAndVisible];
return YES;

我怎样才能让它工作?

编辑:似乎同一视图中的 UIScrollview 导致了问题。如何使它与 UIScrollView 一起使用?

【问题讨论】:

  • 澄清:你的意思是通过点击状态栏,你想要在 UIWebView 中加载的 HTML 页面,滚动到顶部?对吗?

标签: objective-c ios cocoa-touch uiwebview uiscrollview


【解决方案1】:

尝试在 UIScrollView 上设置 setScrollsToTop:NO

根据docs on setScrollsToTop: in UIScrollView

此手势适用于单个可见滚动视图;如果有 具有此属性的多个滚动视图(例如,日期选择器) 设置,或者如果委托在 scrollViewShouldScrollToTop: 中返回 NO, UIScrollView 忽略该请求。

【讨论】:

    【解决方案2】:

    在此处使用答案:UIScrollView + UIWebView = NO scrollsToTop

    像魅力一样为我工作。

    我有一个嵌入了 UIWebView 的 UIScrollView。

    【讨论】:

      【解决方案3】:

      如果我遇到问题,也许这些代码会解决你的问题。

      self.automaticallyAdjustsScrollViewInsets = NO;
      
      CGSize containerSize = self.view.frame.size;
      self.webView.frame = CGRectMake(0, 64, containerSize.wdith, containerSize.height - 65);
      

      有时 self.automaticallyAdjestsScrollViewInsets 不像往常一样工作。所以,把它关掉吧。

      【讨论】:

      • 哦,我只是没明白你的问题。对不起
      猜你喜欢
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      相关资源
      最近更新 更多