gpt4 book ai didi

ios - 延迟将 HTML 字符串加载到 UIWebView

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:08:31 25 4
gpt4 key购买 nike

我在一个导航 Controller 中有两个 View Controller 。第一个 View Controller 有一个带按钮的菜单。按下此按钮将移动到第二个 View Controller 并将 html 字符串加载到 UIWebView 中。没有其他任何东西被加载到 webview,只是一个简单的 NSString,其中包含 html 代码。本质上,我正在使用 webview 作为其中一个 uiview 的 subview 制作一张翻页卡片(两个 View )。

代码如下:

containerView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 280, 280)];
[self.view addSubview:containerView];

frontView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 280)];
frontView.layer.cornerRadius = 10;
frontView.layer.masksToBounds = YES;
[frontView setBackgroundColor:[UIColor whiteColor]];
backView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 280)];
backView.layer.cornerRadius = 10;
backView.layer.masksToBounds = YES;
[backView setBackgroundColor:[UIColor yellowColor]];
[containerView addSubview:frontView];

webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 280, 280)];
webView.scalesPageToFit = YES;
webView.userInteractionEnabled = NO;

NSString *htmlString = @"<head><meta name='viewport' content='width=device-width;'><style type='text/css'>html,body {margin: 0;padding: 0;width: 100%;height: 100%;}html {display: table;}body {display: table-cell;vertical-align: middle;padding: 20px;text-align: center;-webkit-text-size-adjust: none;}</style></head><ruby>金<rt>きん</rt></ruby><ruby>曜<rt>よう</rt></ruby><ruby>日<rt>び</rt></ruby>";

[webView loadHTMLString:htmlString baseURL:nil];
[frontView addSubview:webView];

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(flip)];
[self.view addGestureRecognizer:tap];

}

问题:我注意到在我第一次按下按钮转换到第二个 View Controller 时,看到加载到 webview 的 html 字符串有延迟(大约只有 0.5 - 1 秒)。如果我返回到第一个 View Controller 并再次按下按钮,则不会发生这种情况 - 这次是即时的。

任何想法可能导致第一次延迟以及如何避免它?

谢谢

最佳答案

加载导致延迟的 html 字符串是一个尚未修复的已知问题

你可以尝试包含一个事件指示器并显示它隐藏 webview 并对其进行动画处理直到 webview 完全加载。这可以通过 UIWebview 的委托(delegate)来实现。加载完成后取消隐藏 webview 并删除事件

使用

-(void)webViewDidFinishLoad:(UIWebView *)webView ;
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

关于ios - 延迟将 HTML 字符串加载到 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16292616/

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