Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone:使用UIWebView控制有延迟问题的文本_Iphone_Objective C_Ios4 - Fatal编程技术网

Iphone:使用UIWebView控制有延迟问题的文本

Iphone:使用UIWebView控制有延迟问题的文本,iphone,objective-c,ios4,Iphone,Objective C,Ios4,我选择使用UIWebView,这样我就可以控制捆绑包中本地html文档中包含的文本的布局。我希望文本显示在视图中包含的UIWebView中。因此,文本不是整个视图,只是其中的一部分 一切正常,但当网页加载时,在文本出现之前,我会有一秒钟的空白屏幕。这看起来很糟糕。有谁能给我举个例子,说明如何阻止这种情况发生?我假设我必须以某种方式隐藏web视图,直到它完全加载?谁能告诉我怎么做 目前,我正在通过viewDidLoad调用代码,如下所示: [myUIWebView loadRequest: [NS

我选择使用UIWebView,这样我就可以控制捆绑包中本地html文档中包含的文本的布局。我希望文本显示在视图中包含的UIWebView中。因此,文本不是整个视图,只是其中的一部分

一切正常,但当网页加载时,在文本出现之前,我会有一秒钟的空白屏幕。这看起来很糟糕。有谁能给我举个例子,说明如何阻止这种情况发生?我假设我必须以某种方式隐藏web视图,直到它完全加载?谁能告诉我怎么做

目前,我正在通过viewDidLoad调用代码,如下所示:

[myUIWebView loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"localwebpage" ofType:@"html"] isDirectory:NO]]];
- (void)webViewDidFinishLoad:(UIWebView *)webView {
   if([webView hidden]) {
      [webView setHidden:NO];
   }
}
非常感谢您的帮助。我在一些论坛上读过,没有看到这个问题的好答案,对于像我这样的初学者来说,这似乎是一个反复出现的问题

感谢您抽出时间阅读这篇文章

更新信息
谢谢你的回复。下面的建议解决了这个问题,但为我创建了一个新的问题,因为现在当我的视图加载时,它是完全隐藏的,直到我单击切换开关。为了理解这一点,如果我发布我所有的代码,这可能是最有帮助的。在此之前,让我解释一下视图的设置。我有一个标准视图,其中我还有两个web视图,一个在另一个之上。每个web视图包含具有不同样式的不同文本。用户使用切换开关在视图之间切换,该开关隐藏/显示web视图。我使用web视图是因为我想控制文本的样式/布局。下面是我的完整.m代码,我不知道哪里出错了。我的网络视图被称为牛津和哈佛,我确信这与我如何/何时隐藏/显示视图有关。我已经试过了,但似乎还没弄对。也许我的方法是错误的。如果您能给我一点建议来解决这个问题,我将不胜感激:

@implementation ReferenceViewController
@synthesize oxford;
@synthesize harvard;

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[oxford loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Oxford" ofType:@"html"] isDirectory:NO]]];
[harvard loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Harvard" ofType:@"html"] isDirectory:NO]]];
[oxford setHidden:YES];
[harvard setHidden:YES];

}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
if([webView hidden]) {
    [oxford setHidden:NO];
    [harvard setHidden:NO];
}
}

//Toggle controls for toggle switch in UIView to swap between webviews
- (IBAction)toggleControls:(id)sender {
if ([sender selectedSegmentIndex] == kSwitchesSegmentIndex)
{
    oxford.hidden = NO;
    harvard.hidden = YES;
}
else 
{
    oxford.hidden = YES;
    harvard.hidden = NO;
}
}


- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
[super dealloc];
[oxford release];
[harvard release];

}


@end

当然,在
UIViewController
的指定初始值设定项中,将
UIWebView
实例的
hidden
属性设置为
YES

[webView setHidden:YES];
然后,实现
UIWebViewDelegate
方法
-(void)webViewDidFinishLoad:
,并在方法内部执行
if
检查,如下所示:

[myUIWebView loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"localwebpage" ofType:@"html"] isDirectory:NO]]];
- (void)webViewDidFinishLoad:(UIWebView *)webView {
   if([webView hidden]) {
      [webView setHidden:NO];
   }
}
另外,不要忘记指定您的类符合
UIWebViewDelegate
协议:

@interface YourViewController : UIViewController <UIWebViewDelegate> {...}
@接口YourViewController:UIViewController{…}

尤其不要忘记将UIViewController类设置为UIWebView的委托。。。显而易见,但也有可能,谢谢大家!它是有效的,但它产生了一些额外的问题,我在上面通过添加到我的原始帖子中注意到了这些问题。如果你能指出解决这些问题的方法,那就好了。我一直在摆弄,似乎弄不懂。无论我做什么,WebView都会以隐藏方式加载。此外,我没有将视图指定为UIWebViewDelegate,因为web视图是主视图中的子视图。这是错误的吗?我们的应用程序中也有此问题。。。。看起来像是web视图呈现的方式。它仍然没有解决。谢谢福兹,我认为下面的建议很好,但我不能让它工作。我认为这是我初始化web视图的方式(见上文),但我想不出其他方式来实现它。所以,在我弄明白之前,我想我有点不知所措。如果我想办法,我会把它贴出来。感谢您抽出时间阅读我的帖子!