UIWebView中的滚动条

3

我有一个webview。我已经启用了webview的滚动功能。当我滚动webview时,滚动条会显示出来。

但是,即使我没有滚动,我也需要显示滚动条,以表示此视图可以滚动。

这可能吗?

2个回答

0

嗯,可能是不可能的,但如果你的目的只是让用户知道它是一个可滚动的视图,你可以在加载网页时让他们看到它,强制网页内容从位置y + 100滚动到顶部。你可以获取UIWebView使用的UIScrollView并滚动它...

在你的UIViewController中只需添加以下代码:

- (void)webViewDidFinishLoad:(UIWebView *)wwwebView {
    UIScrollView *myUIWebScrollView = (UIScrollView*)[wwwebView.subviews objectAtIndex:0];
    [myUIWebScrollView setContentOffset:CGPointMake(0, 100) animated:NO];
    [self performSelector:@selector(scrollUp:) withObject:wwwebView afterDelay:0.4];
}

- (void)scrollUp:(UIWebView*)aWebView{
    UIScrollView *myUIWebScrollView = (UIScrollView*)[aWebView.subviews objectAtIndex:0];
    [myUIWebScrollView setContentOffset:CGPointMake(0, 0) animated:YES];

}

你的UIViewController必须是UIWebViewDelegate,因此在.h文件中添加:

    @interface yourWebViewController : UIViewController <UIWebViewDelegate> {

    }

- (void)scrollUp:(UIWebView*)aWebView;

@dsc:当然……不是为你吗?你必须将它放在加载和控制带有UIWebView的UIViewController中……正如我所说,它必须是一个UIWebViewDelegate……也许在你分配并添加到子视图时没有设置UIWebView的代理属性:代码:yourWebView.delegate = self; - meronix
我已经在.h文件中添加了<UIWbViewDelegate>,并且在.xib文件中设置了代理,而不是使用yourWebView.delegate = self;。 - includeMe
@dsc: 接下来 - (void)webViewDidFinishLoad:(UIWebView *)webView; 应该默认在每次 UIWebView 中加载新页面时被调用...可以放置一个 NSLog(@"i'm here!"); 检查它是否被调用...如果没有被调用(与 UIWebViewDelegate 的其他方法一样...)那么就有其他地方出了问题(委托链接...?)而不是代码本身...请查看 xCode 帮助中的 UIWebViewDelegate 协议参考。 - meronix

-1

我认为不可能强制显示滚动条,因为这是苹果用户体验理念的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接