这个问题让我疯狂。
我有一个UIWebView,我试图填写UISplitViewController右侧的完整视图:
CGSize boundsSize = self.view.bounds.size;
self.webView = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, boundsSize.width, boundsSize.height)] autorelease];
self.webView.delegate = self;
self.webView.opaque = NO;
self.webView.backgroundColor = [UIColor redColor];
self.webView.allowsInlineMediaPlayback = YES;
self.webView.dataDetectorTypes = UIDataDetectorTypeAddress | UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
self.webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin;
[self.view addSubview:webView];
首先,当我不知道方向时,如何考虑使框架尺寸适合视图?我可以自动调整到合适的大小吗?
接下来,当我将HTML加载到我的webView中时,我希望帧大小保持不变(就像UIScrollView一样),但是可以使用该帧滚动新内容。有些内容要长得多,有些则不是。所以,我试图调整框架,但这只会使我的框架更大而不是我的内容大小。
- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
// Calculate the size of our webview
CGRect frame = aWebView.frame;
frame.size.height = 1;
aWebView.frame = frame;
CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
aWebView.frame = frame;
}//end
这不可能吗?我是否需要将webView放在UIScrollView中,并在每次将其加载到我的webView中时将其contentSize设置为我新内容的高度?
答案 0 :(得分:2)
我认为这就是你完成这项工作所需要的一切。
[文章WebView sizeThatFits:CGSizeZero];
答案 1 :(得分:0)
看一下autoresize mask。我认为这就是你完成这项工作所需要的一切。
答案 2 :(得分:-4)
似乎我必须在加载时手动调整框架:
// Orientation
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
// Create frame
CGRect frame;
if (UIInterfaceOrientationIsLandscape(orientation)) {
frame = CGRectMake(0, 0, 748, 1024);
} else {
frame = CGRectMake(0, 0, 768, 1022);
}//end