Stop UIWebView from "bouncing" vertically?
for (id subview in webView.subviews) if ([[subview class] isSubclassOfClass: [UIScrollView class]]) ((UIScrollView *)subview).bounces = NO;
...seems to work fine.
It'll be accepted to App Store as well.
Update: in iOS 5.x+ there's an easier way - UIWebView
has scrollView
property, so your code can look like this:
webView.scrollView.bounces = NO;
Same goes for WKWebView
.
I was looking at a project that makes it easy to create web apps as full fledged installable applications on the iPhone called QuickConnect, and found a solution that works, if you don't want your screen to be scrollable at all, which in my case I didn't.
In the above mentioned project/blog post, they mention a javascript function you can add to turn off the bouncing, which essentially boils down to this:
document.ontouchmove = function(event){ event.preventDefault(); }
If you want to see more about how they implement it, simply download QuickConnect and check it out.... But basically all it does is call that javascript on page load... I tried just putting it in the head of my document, and it seems to work fine.
Well all I did to accomplish this is :
UIView *firstView = [webView.subviews firstObject];if ([firstView isKindOfClass:[UIScrollView class]]) { UIScrollView *scroll = (UIScrollView*)firstView; [scroll setScrollEnabled:NO]; //to stop scrolling completely [scroll setBounces:NO]; //to stop bouncing }
Works fine for me... Also, the ticked answer for this question is one that Apple will reject if you use it inyour iphone app.