Safari中导航栏随Web视图滚动的相同行为。
我尝试过两个滚动视图。第一个滚动视图是导航栏的容器,第二个滚动视图隐藏了滚动指示器。它的工作原理(导航栏滚动)几乎就像Safari 中的导航栏一样,但问题出在这里:
showsScrollIndictor
设置为NO
。答案 0 :(得分:1)
好吧,如果您不介意破解视图树,只需将其作为子视图添加到WebView的scrollView中,然后将其他所有内容都删除。我在Apple的UICatalog(WebViewController.m,而不是[self.view addSubview:urlField];)中尝试过,它似乎可以工作
UIScrollView * myScrollView;
for (UIView * view in [myWebView subviews]) {
if ([view isKindOfClass:[UIScrollView class]]) {
myScrollView = (UIScrollView *) view; //probably first, but ya never know
}
}
for (UIView * view in [myScrollView subviews]) {
CGRect tempFrame = view.frame;
tempFrame.origin.y += kTextFieldHeight;
view.frame = tempFrame;
}
[myScrollView addSubview:urlField];
为了让它更漂亮,你还需要在textFieldFrame中将“kTweenMargin”替换为0并删除webFrame调整:
webFrame.origin.y += kTopMargin + 5.0;
webFrame.size.height -= 40.0;
答案 1 :(得分:1)
显然,这不是标准行为,这意味着hacky可能是唯一的出路。
您可以尝试阻止除滚动之外的任何交互的滚动视图,而是将触摸事件传递到UIWebView中。在主控制器中执行此路由。
可能还会发生的是Safari没有使用标准工具栏 - 它可能是Safari注入网页代码的一些HTML。 UIWebView确实有一个loadHTML:或类似的方法; Apple可以简单地添加一些Javascript /图像作为工具栏。
最难的是检测用户在Web视图中滚动了多远,然后向上移动Web视图,将工具栏从屏幕顶部移开相同的量,直到工具栏关闭,然后继续滚动正常。
答案 2 :(得分:0)
尝试制作导航控制器500的y值,看看是否可以滚动它。如果可以,那么问题是它不会滚动到负范围。
答案 3 :(得分:0)
将UIToolbar
和UIWebView
放在同一UIScrollView