【问题标题】:scrollsToTop doesn't work when UIWebView used with pushViewController, looking for solutionUIWebView与pushViewController一起使用时scrollsToTop不起作用,寻找解决办法
【发布时间】:2009-11-27 10:53:42
【问题描述】:

我有一个应用程序,在导航控制器的根部有一个表格视图,在选择表格单元格时,它会显示一个仅包含 UIWebView(带有工具栏和导航栏)的新视图控制器。

根据我呈现新 Web 视图的方式,用户可以点击顶部状态栏并让 Web 视图滚动到顶部的功能可以工作或不工作。

如果我使用:

  • (void)presentModalViewController:(UIViewController *)modalViewController 动画化:(BOOL)动画化

在 RootView 上,然后 webview 会滚动到顶部。

如果我更改那一行代码并改为使用:

  • (void)pushViewController:(UIViewController *)viewController 动画化:(BOOL)动画化

在导航控制器上,然后 scrollsToTop 功能停止工作。

然而,出于应用程序上下文中的其他原因,我真正想使用的是 pushViewController 方法。但是,我也想保留 scrollsToTop 行为。

到目前为止,我已经尝试了各种方法,这里有一些描述:

-尝试设置webview内部scrollView scrollsToTop属性

((UIScrollView *)[[webView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = YES;

(无明显效果)。

-更改设置 NavBar 属性的顺序或根本不设置任何属性 - 在新视图推送后添加额外的“window makeKeyAndOrderFront”调用。

我不相信那里有其他视图可以声明“scrollsToTop”属性(上面的第一个测试证明无论如何)。

没有尝试将 UIWebView 嵌入到 UIScrollView 中,我预计这会很痛苦,我已经没有办法探索解决这个问题了。

我希望其他人已经找到了解决此问题的方法?

【问题讨论】:

    标签: iphone uiwebview


    【解决方案1】:

    尝试相反的方法作为解决方法。

    在根视图控制器中:

    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        self.tableView.scrollsToTop = NO;
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        self.tableView.scrollsToTop = YES;
    }
    

    再见!

    【讨论】:

    • 感谢您的回复!我知道你要去哪里,也许根视图及其表正在声明 scrollsToTop!寄予厚望,我尝试了这个,但不幸的是没有效果! :-( 非常感谢您的想法,如果您还有其他想法,请不要犹豫:)
    • 真的很奇怪。在我正在开发的应用程序中,我有相同的场景(表格视图控制器-> Web 视图 [控制器])并且我对状态栏的行为没有任何问题......如果我有一个想法,我会毫不犹豫地建议你! :)
    【解决方案2】:

    事实证明,由于我自定义导航栏的方式,它无法正常工作。我用 UIBarButtonItem 覆盖了 leftBarButtonItem,然后占据了整个导航栏(我想我几个月前从一些 Apple 代码中采用了这种方法,但不确定)。我在另一个视图上使用了相同的方法,并且 scrollsToTop 在那里运行良好。

    取出该代码并将自定义导航栏视图放入(例如)self.navigationController.titleView 解决了这个问题。我真的不知道为什么,就像我说它适用于其他视图一样。

    我在这个问题上浪费了很多时间,所以我希望通过在这里描述它来节省别人的头发:)

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多