gpt4 book ai didi

ios - 为什么在动画 block 中显示 View 时 UIWebView scalespagetofit 不起作用?

转载 作者:行者123 更新时间:2023-11-29 11:18:11 25 4
gpt4 key购买 nike

我想淡出一个 View 并在末尾显示一个 WebView ,并缩放页面以适应 WebView 。但是,当我尝试通过完成 block 在动画末尾显示 webview 时,网页没有缩放以适合,而是缩放得太多,需要平移才能看到所有内容。例如,如果我有:

- (void)viewDidLoad {
[super viewDidLoad];
webView = [[UIWebView alloc] init];
webView.scalesPageToFit = YES;
webView.backgroundColor = [UIColor blackColor];

self.view.alpha = 1;
self.view.backgroundColor = [UIColor whiteColor];
}

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

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://stackoverflow.com"]]];
// self.view = webView;
[UIView animateWithDuration:2 delay:0.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{ self.view.alpha = 0; }
completion:^(BOOL fin){ self.view = webView; }];
}

UIWebView 中的内容无法正确缩放,但如果我放弃动画并仅分配 self.view = webView,页面将按照 scalesPageToFit = YES< 时的预期呈现。有人知道这是怎么回事吗?

最佳答案

为了回答我自己的问题,我认为这是由于 webview 在加载内容时最初没有任何明确的引用框架可以使用,所以当我突然将其设为 Controller View 时它无法正确布局内容动画之后。

作为修复,我所要做的就是在 viewDidLoad 中给它一个框架:webView.frame = self.view.frame;

我在上面很幸运;到 viewDidLoad: 时,已经为 self.view 设置了框架,因为它是在 nib 中指定的。如果我在 loadView: 中动态生成 View 而不在那里设置任何框架,我将不得不将该框架分配推迟到 viewWillAppear:。 (浪费了更多时间来提醒自己这一点!)

关于ios - 为什么在动画 block 中显示 View 时 UIWebView scalespagetofit 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487060/

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