WebView,嘿嘿,懶人專用,直接複製貼上就能用,frame可調

kaihaOS發表於2016-05-04

在控制器的.h檔案中

#import <UIKit/UIKit.h>

#import "FirstView.h"


@interface FirstViewController : UIViewController<UIWebViewDelegate> {

    UIWebView *web;

    UIActivityIndicatorView *activityIndicatorView;

    UIView *opaqueView;

}


@property (nonatomic, strong) FirstView *fv;


@end





在.m中,如下:

#import "FirstViewController.h"


@interface FirstViewController ()


@end


@implementation FirstViewController


- (void)loadView {

    [super loadView];

    self.fv = [[FirstView alloc] initWithFrame:[UIScreen mainScreen].bounds];

    self.view = self.fv;

}


- (void)viewWillAppear:(BOOL)animated {

    self.tabBarController.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.890 green:0.471 blue:0.118 alpha:1.000];

    self.tabBarController.navigationController.title = @"空中奪寶";

}


- (void)viewDidLoad {

    [super viewDidLoad];

    web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 40)];

    [web setUserInteractionEnabled:YES];//是否支援互動

    web.delegate=self;

    [web setOpaque:NO];   //opaque是不透明的意思

    [web setScalesPageToFit:YES];//自動縮放以適應螢幕

    [self.view addSubview:web];

    

    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

    [web loadRequest:[NSURLRequest requestWithURL:url]];

    //2.載入本地檔案資源

    /* NSURL *url = [NSURL fileURLWithPath:filePath];

     NSURLRequest *request = [NSURLRequest requestWithURL:url];

     [webView loadRequest:request];*/

    //3.讀入一個HTML,直接寫入一個HTML程式碼

    //NSString *htmlPath = [[[NSBundle mainBundle]bundlePath]stringByAppendingString:@"webapp/loadar.html"];

    //NSString *htmlString = [NSString stringWithContentsOfURL:htmlPath encoding:NSUTF8StringEncoding error:NULL];

    //[webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];

    

    opaqueView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];

    activityIndicatorView = [[UIActivityIndicatorView alloc]initWithFrame:[UIScreen mainScreen].bounds];

    [activityIndicatorView setCenter:opaqueView.center];

    [activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];

    [opaqueView setBackgroundColor:[UIColor blackColor]];

    [opaqueView setAlpha:0.6];

    

    [self.view addSubview:opaqueView];

    [opaqueView addSubview:activityIndicatorView];

    // Do any additional setup after loading the view.

}



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

    [activityIndicatorView startAnimating];

    opaqueView.hidden = NO;

}


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

    [activityIndicatorView startAnimating];

    opaqueView.hidden = YES;

}


//UIWebView如何判斷 HTTP 404 等錯誤

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

    NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

    if ((([httpResponse statusCode]/100) == 2)) {

        // self.earthquakeData = [NSMutableData data];

        [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

        

        [ web loadRequest:[ NSURLRequest requestWithURL: url]];

        web.delegate = self;

    } else {

        NSDictionary *userInfo = [NSDictionary dictionaryWithObject:

                                  NSLocalizedString(@"HTTP Error",

                                                    @"Error message displayed when receving a connection error.")

                                                             forKey:NSLocalizedDescriptionKey];

        NSError *error = [NSError errorWithDomain:@"HTTP" code:[httpResponse statusCode] userInfo:userInfo];

        

        if ([error code] == 404) {

//            NSLog(@"xx");

            web.hidden = YES;

        }

        

    }



    // Do any additional setup after loading the view.

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end





 執行吧,是不是成功了!~~



相關文章