【发布时间】:2011-03-29 15:39:49
【问题描述】:
这是对先前问题的更新。一旦我用一些基于字符串的 HTML 内容加载 UIWebView,有没有办法确定视图是否需要滚动才能看到全部内容?我正在寻找某种标志或方式来了解内容是否低于 UIWebView 的底部。
提前致谢!
【问题讨论】:
这是对先前问题的更新。一旦我用一些基于字符串的 HTML 内容加载 UIWebView,有没有办法确定视图是否需要滚动才能看到全部内容?我正在寻找某种标志或方式来了解内容是否低于 UIWebView 的底部。
提前致谢!
【问题讨论】:
您可以继承 UIWebView 并使用以下初始化器:
-(id) initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
for (UIView* v in self.subviews){
if ([v isKindOfClass:[UIScrollView class]]){
self.scrollview = (UIScrollView*)v;
break;
}
}
}
return self;
}
- (id) initWithFrame:(CGRect)frame{
if(self = [super initWithFrame:frame])
{
for (UIView* v in self.subviews){
if ([v isKindOfClass:[UIScrollView class]]){
self.scrollview = (UIScrollView*)v;
break;
}
}
}
return self;
}
然后有一个名为
的属性@property (nonatomic, retain) UIScrollView *scrollview;
然后您可以访问 UIWebView 中的滚动视图,并可以检查其内容大小以查看它是否大于您的视图大小
【讨论】:
最简单的方法大概是用Javascript来获取文档高度:
NSInteger 高度 = [[myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] intValue];
(还没有实际测试过这个,所以 YMMV。不同的浏览器将文档高度放在不同的对象和属性中,我不记得哪个在 Webkit 中工作......见How to get height of entire document with JavaScript?)
如果返回的高度大于 UIWebView 的高度,则需要滚动。
【讨论】: