gpt4 book ai didi

ios - 如何在 UIModalPresentationFormSheet 中调整 UIWebView 的大小?

转载 作者:可可西里 更新时间:2023-11-01 03:33:09 25 4
gpt4 key购买 nike

我尝试了人类已知的每一种排列,但我无法让 UIWebView 在 iPad 的模态表单 View 中正确调整大小。网页仍然显示 768 点的完整 iPad 纵向宽度。

我在哪里以及如何告诉 UIWebView 显示宽度 540 点?

我认为“scalesPageToFit”应该这样做,但它不起作用。

我尝试将 Web View 设置为表单 View 的大小,即带有导航和状态栏的 540 x 576。不过高度无关紧要。

我尝试将 UIWebView 添加到 Storyboard中的 UIView,并设置了所有调整大小。然后我删除了 UIWebView 并以编程方式添加了它。

- (void)viewDidLoad
{
[super viewDidLoad];

CGRect aFrame = self.view.frame;

if (IS_IPAD)
{
aFrame = CGRectMake(0, 0, FORM_VIEW_WIDTH, FORM_VIEW_HEIGHT);
}

_webView = [[UIWebView alloc] initWithFrame:aFrame];
[_webView setOpaque:NO];
[_webView setDelegate:self];
[_webView setScalesPageToFit:YES];

self.view = _webView;
...
}

我也尝试在 viewDidAppear 中加载(除了 viewDidLoad、viewWillAppear 等)

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];

[[self webView] setFrame:CGRectMake(0, 0, FORM_VIEW_WIDTH, FORM_VIEW_HEIGHT)];
[[self webView] setScalesPageToFit:YES];

NSURL *webURL = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:webURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5.0f];
[[self webView] loadRequest:request];
}

感谢任何建议。

enter image description here

最佳答案

这一直在我身上发生。我发布了一个冗长的问题,两秒钟后我找到了答案。

无论如何,有人在这里发布了这个问题的解决方案: UIWebView -- load external website, programmatically set initial zoom scale, and allow user to zoom afterwards

但是,我修改了脚本以将宽度设置为 iPad 宽度:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString* js =
@"var meta = document.createElement('meta'); "
@"meta.setAttribute( 'name', 'viewport' ); "
@"meta.setAttribute( 'content', 'width = 540px, initial-scale = 1.0, user-scalable = yes' ); "
@"document.getElementsByTagName('head')[0].appendChild(meta)";

[[self webView] stringByEvaluatingJavaScriptFromString: js];
}

注意'width = 540px, initial-scale = 1.0, user-scalable = yes'部分

我将宽度更改为表单宽度并将比例更改为 1.0。

我还需要处理iPhone,所以接下来我会针对它进行调整。我认为可能只有 iPad 表单 View 才需要此修复。

更新:答案是短暂的。如果我加载任何其他页面,大小调整将再次被取消。回到第一点。

解决方案:此 View 只需要访问我开发的几个网页。因此,我通过向每个网页添加元标记来更新我需要访问的几个网页。我只需要访问这些页面,所以这是我打算采用的解决方案。这意味着我需要以某种方式将 iPad 的视口(viewport)宽度设置为 540px。接下来我会解决这个问题。

<meta name="viewport" content="width:540, initial-scale=1, maximum-scale=1">

关于ios - 如何在 UIModalPresentationFormSheet 中调整 UIWebView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15826714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com