我有一个内容大约为1000px x 200px的iphone UIWebView。目前,当您用手指滚动时,它会垂直弹跳但不会水平弹跳。
我希望它做相反的事情:水平弹跳但不垂直弹跳。
我需要在html中做些诡计来实现这个目标吗?例如,明确地设置身体的宽度和高度可能吗?或者它是UIWebView的设置?我可以执行以下操作来完全禁用弹跳,是否有类似于在每个方向上设置弹跳的内容?
[[[webView subviews] lastObject] setBounces:NO];
非常感谢您的帮助
答案 0 :(得分:5)
在iOS 5中,您无需访问子视图。 UIWebView
包含嵌套UIScrollView的scrollView
属性:
禁用退回:
webView.scrollView.bounces = NO;
只能垂直弹跳:
webView.scrollView.alwaysBounceVertical = NO;
webView.scrollView.alwaysBounceHorizontal = YES;
答案 1 :(得分:0)
您可以尝试添加CSS样式表,并使用视图的维度设置容器Div。并将styleSheet应用于UIWebView。
你可以这样做 -
NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];
//do base url for css
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString *html =[NSString stringWithFormat:@"<!DOCTYPE html><html><head><link rel=\"stylesheet\" href=\"%@\" type=\"text/css\" /></head><body><section></section><br><br></body></html>",,cssPath];
[webView loadHTMLString:html baseURL:baseURL];
答案 2 :(得分:0)
您可以遍历所有UIWebViews子视图(使用for循环)检查每个子视图以查看它是否为UIscrollView(使用isMemberOfClass:
),然后更改UIScrollView中的属性以满足您的需要。
for (UIView *subview in [myWebView subviews]) {
if ([subview isMemberOfClass:[UIScrollView class]]) {
[(UIScrollView *)subview setAlwaysBounceVertical:NO];
[(UIScrollView *)subview setAlwaysBounceHorizontal:YES];
}
}
答案 3 :(得分:0)
你总是可以这样做:
for (UIView *subview in [self.webView subviews]) {
SEL sel = @selector(setAlwaysBounceHorizontal:);
if( [subview respondsToSelector:sel] ){
[subview performSelector:sel withObject:(id)YES];
}
}
在viewDidLoad中