这是对早期问题的更新。一旦我用一些基于字符串的HTML内容加载一个UIWebView,有没有办法确定视图是否需要滚动来查看整个内容?我正在寻找某种标志或方式来了解内容是否低于UIWebView的底部。确定UIWebView是否需要滚动
提前致谢!
这是对早期问题的更新。一旦我用一些基于字符串的HTML内容加载一个UIWebView,有没有办法确定视图是否需要滚动来查看整个内容?我正在寻找某种标志或方式来了解内容是否低于UIWebView的底部。确定UIWebView是否需要滚动
提前致谢!
你可以继承的UIWebView并使用以下initalizers:
-(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 height = [[myWebView stringByEvaluatingJavaScriptFromString:@“document.body.scrollHeight”] intValue];
(没有实际测试,所以因人而异,不同的浏览器把文档高度不同的对象和属性,我不记得在Webkit的其中一个作品......看到How to get height of entire document with JavaScript?)
如果高度返回大于它需要滚动的UIWebView高度。
这是一个有点工作,好主意。 我做了这样的检查:(w是我的subclassed webview) [w loadHTMLString:content baseURL:url]; \t \t \t [scrollIssue addSubview:w]; \t \t \t \t \t \t \t \t \t的CGRect RECT = w.frame; \t \t \t UIScrollView * sv = [w scrollview]; \t \t \t CGSize rectv = sv.contentSize; 即使需要滚动,它们也总是一样的。怀疑它没有被绘制,有没有办法在检查之前强制它布局? – 2011-03-29 20:47:06
可以尝试调用webview上的layoutSubviews? – JFoulkes 2011-03-30 08:17:17