0

我试图仅在页面加载后加载 UIWebView。在页面准备好之前,我只希望显示启动画面。我尝试遵循此页面上的第一个答案(XCode 防止 UIWebView 在 Launch Image 后闪烁白屏),但它似乎不起作用......启动画面加载并且 UIWebView 永远不会加载。

有什么建议吗?

视图控制器.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController{

IBOutlet UIWebView *webView;

}

@property (nonatomic, retain) IBOutlet UIWebView *webview;
@property(nonatomic, strong) UIImageView *loadingImageView;
@end

视图控制器.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController;

@synthesize webview;
@synthesize loadingImageView;

- (void)viewDidLoad
{
    [super viewDidLoad];


    //**************** Set website URL for UIWebView
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://http://warm-chamber-7399.herokuapp.com/"] cachePolicy:NSURLCacheStorageAllowed timeoutInterval:20.0]];


    //**************** Add Static loading image to prevent white "flash" ****************/
    UIImage *loadingImage = [UIImage imageNamed:@"Default.png"];
    loadingImageView = [[UIImageView alloc] initWithImage:loadingImage];
    loadingImageView.animationImages = [NSArray arrayWithObjects:
                                        [UIImage imageNamed:@"Default.png"],
                                        nil];
    [self.view addSubview:loadingImageView];

}

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    // Remove loading image from view
    [loadingImageView removeFromSuperview];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
4

3 回答 3

4

尝试这个,

@interface ViewController () <UIWebViewDelegate>

 {
    UIWebView * webView;
    UIImageView * imageView;
 }

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    imageview = [[UIImageView alloc]init];
    [imageview setFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)];
    [imageview setImage:[UIImage imageNamed:@"Red.png"]];
    [self.view addSubview:imageview];

    webView = [[UIWebView alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)];
    [webView setDelegate:self];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com"]]];

    // Do any additional setup after loading the view, typically from a nib.
}

// UIWebView Delegate

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [imageView removeFromSuperview];
    [self.view addSubview:webView]; 
}

@end
于 2013-04-05T04:12:28.520 回答
1

你设置了代表webView吗?如果不进行设置,您的webViewDidFinishLoad:方法将永远不会触发。

webView.delegate = self;
于 2013-04-04T21:43:10.467 回答
0

为什么不直接将启动图像添加到 .plist 文件中

于 2013-04-05T05:51:59.717 回答