我有一个显示网页的UIWebView。问题是我只希望它显示网页的一部分。我尝试使用[[_menuWebView scrollView] setContentOffset:CGPointMake(0, 100)];
将内容偏移设置为我想要的位置,但问题是我不希望用户能够滚动其余的网页。我也无法将网页设置为不可滚动,因为我需要能够看到的部分比可用空间略大。有没有办法:
提前致谢!
修改
我已经使用了答案中的代码来让UIWebView不滚动到顶部,问题是不要滚动到底部。我使用此代码来检查contentOffset应该在底部的位置:_bottom_y = [[_menuWebView scrollView] contentSize].height - 20 - [_menuWebView frame].size.height;
。当我NSLog _bottom_y时,它会出现68,因为底部偏移应该是。问题是,我知道顶部偏移为115并且有效。上面的代码有什么问题?为什么它给了我这个奇怪的数字?
谢谢
答案 0 :(得分:1)
我认为这对你的问题很好。其结构中的UIWebView
包含UIScrollView
,因此您可以将UIViewController
设置为UIScrollView
的代理人。因此,您可以实现一个名为scrollViewDidScroll:
的方法,在其中检查UIWebView
是否达到了y偏移量,如果是,则>不要让它滚过那一点。
这是一个我用过的例子:
@interface ViewController : UIViewController <UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_webView.scrollView.delegate = self;
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];
_webView.scrollView.contentOffset = CGPointMake(0, 50);
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < 50) {
scrollView.contentOffset = CGPointMake(0, 50);
}
}
@end
希望这有帮助,欢呼!